Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Normal
-
Resolution: Fixed
-
Affects Version/s: 3.0.RC1
-
Fix Version/s: 3.0.RC2
-
Component/s: None
-
Documentation Required:No
-
- Description:
-
HideWe are currently calling resume on expired Continuations resulting in the following error:
Aug 23, 2010 1:05:27 PM org.directwebremoting.server.jetty.JettyContinuationSleeper wakeUp
SEVERE: Broken reflection
java.lang.IllegalStateException: IDLE,initial
at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:364)
at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:769)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.directwebremoting.util.Continuation.resume(Continuation.java:107)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.wakeUp(JettyContinuationSleeper.java:177)
at org.directwebremoting.impl.TimedAlarm$1.run(TimedAlarm.java:46)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Aug 23, 2010 1:06:08 PM org.directwebremoting.server.jetty.JettyContinuationSleeper wakeUp
SEVERE: Broken reflection
java.lang.IllegalStateException: REDISPATCHED,resumed,expired
at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:364)
at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:769)
at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.directwebremoting.util.Continuation.resume(Continuation.java:107)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.wakeUp(JettyContinuationSleeper.java:177)
at org.directwebremoting.impl.TimedAlarm$1.run(TimedAlarm.java:46)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
ShowWe are currently calling resume on expired Continuations resulting in the following error: Aug 23, 2010 1:05:27 PM org.directwebremoting.server.jetty.JettyContinuationSleeper wakeUp SEVERE: Broken reflection java.lang.IllegalStateException: IDLE,initial at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:364) at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:769) at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.directwebremoting.util.Continuation.resume(Continuation.java:107) at org.directwebremoting.server.jetty.JettyContinuationSleeper.wakeUp(JettyContinuationSleeper.java:177) at org.directwebremoting.impl.TimedAlarm$1.run(TimedAlarm.java:46) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Aug 23, 2010 1:06:08 PM org.directwebremoting.server.jetty.JettyContinuationSleeper wakeUp SEVERE: Broken reflection java.lang.IllegalStateException: REDISPATCHED,resumed,expired at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:364) at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:769) at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.directwebremoting.util.Continuation.resume(Continuation.java:107) at org.directwebremoting.server.jetty.JettyContinuationSleeper.wakeUp(JettyContinuationSleeper.java:177) at org.directwebremoting.impl.TimedAlarm$1.run(TimedAlarm.java:46) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619)
Attachments
-
- Screenshot.png
- (99 kB)
Activity
Dear DWR Team,
May be I have a same error, using dwr3.0.RC1 with jetty7. How could I get the dwr3.0.RC2.
Help me check this error, is that a bug? Thanks a lot!
2010-10-21 16:20:36 [org.directwebremoting.server.jetty.JettyContinuationSleeper]-[ERROR] Broken reflection
java.lang.NullPointerException
at org.directwebremoting.util.Continuation.resume(Continuation.java:94)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.wakeUp(JettyContinuationSleeper.java:132)
at org.directwebremoting.impl.OutputAlarm$AlarmScriptConduit.addScript(OutputAlarm.java:95)
at org.directwebremoting.impl.DefaultScriptSession.writeScripts(DefaultScriptSession.java:329)
at org.directwebremoting.impl.DefaultScriptSession.addScriptConduit(DefaultScriptSession.java:309)
at org.directwebremoting.impl.OutputAlarm.<init>(OutputAlarm.java:52)
at org.directwebremoting.dwrp.BasePollHandler.handle(BasePollHandler.java:150)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:456)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
at org.eclipse.jetty.server.Server.handle(Server.java:351)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1059)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:764)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Thread.java:595)
2010-10-21 16:20:36 [org.directwebremoting.server.jetty.JettyContinuationSleeper]-[WARN] Exception
java.lang.NullPointerException
at org.directwebremoting.util.Continuation.suspend(Continuation.java:76)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.goToSleep(JettyContinuationSleeper.java:92)
at org.directwebremoting.dwrp.BasePollHandler.handle(BasePollHandler.java:234)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:423)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:456)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
at org.eclipse.jetty.server.Server.handle(Server.java:351)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1059)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:764)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:506)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
at java.lang.Thread.run(Thread.java:595)
IDLE SCEP@16579856 [d=false,io=1,w=true,rb=false,wb=false]
Or, I should say trunk. RC2 has not been officially released yet.
Hi,
I'm using the latest build, but still encountering this error.
21 May 2011 21:34:24,633 ERROR [Thread-153] JettyContinuationSleeper.wakeUp(181) | Broken reflection
java.lang.IllegalStateException: IDLE,initial
at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:364)
at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:769)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.directwebremoting.util.Continuation.resume(Continuation.java:108)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.wakeUp(JettyContinuationSleeper.java:177)
at org.directwebremoting.impl.TimedAlarm$1.run(TimedAlarm.java:46)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Steven, RC2 has not been released yet. The latest build is on our Bamboo CI server:
http://ci.directwebremoting.org/bamboo/browse/DWRTRUNK-ALL-256/artifact
Is this the build you are using?
Sorry, didn't look at my previous comment. So you are probably using a Bamboo build.
What version of Jetty are you using? If you are using Jetty 6 you need to follow the instructions here:
http://www.butterdev.com/dwr/2010/01/dwr-3-x-and-jetty-continuations-on-jetty-6-x/
Hi David,
I'm already using Jetty 7. The version is 7.4.0.v20110414. See http://download.eclipse.org/jetty/. To what version of Jetty 7 is DWR 3.0 stable with?
I haven't tested since 7.2 (which I just tested again and it works fine) but it does not look like they have changed their APIs so I am not sure what the problem is.
If you can dig a bit deeper that would be great otherwise it may take me a few days to look into it.
Steven, I had a few minutes and took a quick look. I downloaded 7.4.0.v20110414 and deployed the dwr.war to it. I tested with the reverse ajax clock example and everything is working fine. Have you tried deploying the dwr.war and looking at the clock example? What exactly are you doing?
Hi David,
Sorry for the late reply. I was comparing our app with the clock example. I noticed that in our app, ReverseAjax.dwr is repeatedly executed every 30 seconds. See screenshot. The clock example just executed ReverseAjax.dwr once for the entire page session. Is this normal?
"The clock example just executed ReverseAjax.dwr once for the entire page session. Is this normal?"
No. With our clock demo you will see the reverse ajax call approximately every second. The clock demo should show the current server time and be updated every second. Are you not seeing this? What build number of dwr are you running? Any details about your environment?
Sorry for the confusion. It should be: "I noticed that in our app, ReverseAjax.dwr is repeatedly executed every 30 seconds. Is this normal?". Please check the screenshot I just uploaded. Thanks.
The clock example just executed ReverseAjax.dwr once for the entire page session
-It seems that I downloaded on old version of the war file. Behavior is already same with our application. I'll try replicating the error.
The console shows this error intermittently:
WARN ExceptionHandler - Error: org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException
DEBUG ExceptionHandler - Debug for stack trace:
org.eclipse.jetty.io.RuntimeIOException: org.eclipse.jetty.io.EofException
at org.eclipse.jetty.io.UncheckedPrintWriter.setError(UncheckedPrintWriter.java:107)
at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:280)
at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:295)
at org.eclipse.jetty.io.UncheckedPrintWriter.print(UncheckedPrintWriter.java:460)
at org.eclipse.jetty.io.UncheckedPrintWriter.println(UncheckedPrintWriter.java:642)
at org.directwebremoting.dwrp.PlainScriptConduit.addScript(PlainScriptConduit.java:98)
at org.directwebremoting.dwrp.BaseScriptConduit.close(BaseScriptConduit.java:116)
at org.directwebremoting.dwrp.BasePollHandler$1.run(BasePollHandler.java:222)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.restart(JettyContinuationSleeper.java:67)
at org.directwebremoting.server.jetty.JettyContainerAbstraction.isResponseCompleted(JettyContainerAbstraction.java:72)
at org.directwebremoting.dwrp.BasePollHandler.handle(BasePollHandler.java:86)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:534)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:476)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:934)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:404)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:869)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:185)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
at org.eclipse.jetty.server.Server.handleAsync(Server.java:386)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:393)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:529)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:41)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.eclipse.jetty.io.EofException
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:911)
at org.eclipse.jetty.http.AbstractGenerator.blockForOutput(AbstractGenerator.java:511)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:154)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:96)
at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:109)
at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:283)
at org.eclipse.jetty.server.HttpWriter.write(HttpWriter.java:107)
at org.eclipse.jetty.io.UncheckedPrintWriter.write(UncheckedPrintWriter.java:271)
... 33 more
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:72)
at sun.nio.ch.IOUtil.write(IOUtil.java:28)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:240)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:294)
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:855)
... 40 more
2011-05-23 14:25:39.566:WARN::Committed before 501 Error. Details logged to the console
Hi,
Regarding the Broken reflection error, here's my assessment. Please logs below:
23 May 2011 18:03:59,422 DEBUG [qtp720673304-123] BasePollHandler.handle(190) | ENTER BASEPOLLHANDLER
23 May 2011 18:04:14,019 DEBUG [qtp720673304-121] System.pageUnloaded(74) | pageUnloaded is invalidating scriptSession: DefaultScriptSession[id=5h2K/zAHj]
23 May 2011 18:04:26,766 DEBUG [qtp720673304-118] BasePollHandler.handle(190) | ENTER BASEPOLLHANDLER
23 May 2011 18:04:59,425 ERROR [Thread-24] JettyContinuationSleeper.wakeUp(181) | Broken reflection
java.lang.IllegalStateException: IDLE,initial
23 May 2011 18:05:26,768 ERROR [Thread-24] JettyContinuationSleeper.wakeUp(181) | Broken reflection
java.lang.IllegalStateException: IDLE,initial
The error occurs when the notify on page unload is set to true. TimedAlarm tries to resume the suspended continuation but the scriptSession was already been invalidated.
Hi David,
After testing again, I think this has nothing to do with the invalidation of script session. This happens when the user goes to another page while the continuation instance of the current page is still not resumed.
Thanks for the analysis Steven. What are the ill affects of this? Is something not working or does the exception seem to be harmless?
I am not as concerned with the EOFException as that is being logged at the debug level. I think it was always expected that this would be seen if the browser was closed, etc. I am concerned about:
"21 May 2011 21:34:24,633 ERROR [Thread-153] JettyContinuationSleeper.wakeUp(181) | Broken reflection
java.lang.IllegalStateException: IDLE,initial "
I will try to reproduce this.
Hi David,
I did some testing. I tried adding a ContinuationListener and the ff. logs were generated:
No Error:
24 May 2011 00:33:15,885 DEBUG [qtp1166093137-121] BasePollHandler.onTimeout(247) | Timeout
24 May 2011 00:33:15,888 DEBUG [qtp1166093137-121] PlainScriptConduit.addScript(96) | Execution time: Tue May 24 00:33:15 PHT 2011 - Writing to response: dwr.engine.remote.handleCallback("1","0",1);
24 May 2011 00:33:15,890 DEBUG [qtp1166093137-121] BasePollHandler.onComplete(252) | Complete
Encountered Broken reflection error:
24 May 2011 00:33:00,945 DEBUG [qtp1166093137-118] BasePollHandler.onTimeout(247) | Timeout
24 May 2011 00:33:00,946 DEBUG [qtp1166093137-118] BasePollHandler.onComplete(252) | Complete
24 May 2011 00:33:30,948 ERROR [Thread-24] JettyContinuationSleeper.wakeUp(182) | Broken reflection
java.lang.IllegalStateException: IDLE,initial
Steven, at this point I think we should open a separate issue for this. Can you do that for me? If so please add the relevant details from our discussion. Thanks.
Hi,
I think the solution to this is instead of using isExpired, use isSuspended to check if the continuation needs to be resumed.
hi, David. The documentation say:'DWR makes use of Jetty Continuations from version 2.0. The Jetty support is automatic, no special configuration is needed. ' in this http://directwebremoting.org/dwr/index.html websit.
what this means? I want use ReverseAjax.dwr of dwr3 + Continuations of jetty7 whether you can offer a demo in documentation.
I am encountering this error. chat demo of dwr3 + jetty7.3.0.v20110203
2011-6-13 14:25:33 org.directwebremoting.server.jetty.JettyContinuationSleeper goToSleep
警告: Exception
java.lang.NullPointerException
at org.directwebremoting.util.Continuation.suspend(Continuation.java:76)
at org.directwebremoting.server.jetty.JettyContinuationSleeper.goToSleep(JettyContinuationSleeper.java:92)
at org.directwebremoting.dwrp.BasePollHandler.handle(BasePollHandler.java:234)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:120)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:141)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:534)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:476)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:935)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:404)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:184)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:870)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1068)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:807)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:520)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:528)
at java.lang.Thread.run(Thread.java:662)
Forget my poor English.
yangcheng, I think the problem here is that the Jetty API changed from when DWR 3.0 RC1 was released.
Please try our latest development build here - http://ci.directwebremoting.org/bamboo/browse/DWRTRUNK-ALL-295/artifact as we have resolved this.
Even though this is the latest development build something very close to it will be released as 3.0 RC2 very soon.
Thanks,David. The proplem was solved. I will test for ReverseAjax of used Continuation.
See mailing list thread - [dwr-user] severe exception: DWR 3 with Jetty 7.
Jeff, I have checked in a fix for this.