Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 352216

Summary: [UICallback] Application crashes after activating a UICallback
Product: [RT] RAP Reporter: Austin Riddle <austin.riddle>
Component: RWTAssignee: Project Inbox <rap-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: P3    
Version: 1.5   
Target Milestone: 1.5 M1   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Austin Riddle CLA 2011-07-15 10:16:15 EDT
Version: CVS HEAD

java.lang.IllegalStateException: SingletonManager already installed for session: 1x9bped37nd5v7heejyvb8719
	at org.eclipse.rwt.internal.SingletonManager.checkNotInstalled(SingletonManager.java:70)
	at org.eclipse.rwt.internal.SingletonManager.install(SingletonManager.java:27)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.clearSessionStore(LifeCycleServiceHandler.java:149)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.checkRequest(LifeCycleServiceHandler.java:136)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.runLifeCycle(LifeCycleServiceHandler.java:74)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:57)
	at org.eclipse.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:46)
	at org.eclipse.rwt.internal.service.ServiceManager$HandlerDispatcher.service(ServiceManager.java:34)
	at org.eclipse.rwt.internal.engine.RWTDelegate.doPost(RWTDelegate.java:44)
	at org.eclipse.rwt.internal.engine.RWTDelegate.doGet(RWTDelegate.java:33)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.rap.rwt.osgi.internal.CutOffContextPathWrapper.service(CutOffContextPathWrapper.java:103)
	at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:126)
	at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:317)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:924)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Comment 1 Austin Riddle CLA 2011-07-15 10:20:07 EDT
The controls demo will seems to come up, but other apps won't even load the first time.
Comment 2 Austin Riddle CLA 2011-07-15 10:36:57 EDT
To reproduce:

If you enable a UI Callback in preStartup() of an application workbench advisor, it will crash the app when the client tries to load.  The first time, your will get a server session timed out message with a javascript error, and then if you refresh the page, the above noted exception occurs.
Comment 3 Austin Riddle CLA 2011-07-15 10:45:44 EDT
After more testing it seems that you cannot enable a UICallback at all without crashing the app.
Comment 4 Austin Riddle CLA 2011-07-15 10:53:52 EDT
From the controls demo you can just go to the ProgressBar tab and click "Start Background Process". Anything you do after will crash the app.
Comment 5 Ralf Sternberg CLA 2011-07-15 12:38:19 EDT
The CVS was broken in between, but the issue should be fixed now. We forgot to update the UICAllBack URL in the client-side code when we moved the UICAllBack stuff to a new package. Could you check again with CVS HEAD?
Comment 6 Austin Riddle CLA 2011-07-15 15:22:22 EDT
(In reply to comment #5)
> The CVS was broken in between, but the issue should be fixed now. We forgot to
> update the UICAllBack URL in the client-side code when we moved the UICAllBack
> stuff to a new package. Could you check again with CVS HEAD?

Hi Ralf, it does indeed work again now. :-)
I had to test in debug mode because you didn't check in an updated client.js.
I tried to recompress the client myself, but the compressor is complaining about corrupt files. Just FYI.
Comment 7 Ivan Furnadjiev CLA 2011-07-15 15:59:05 EDT
(In reply to comment #6)
> I had to test in debug mode because you didn't check in an updated client.js.
client.js rebuilt and committed.
Comment 8 Ralf Sternberg CLA 2011-07-16 05:04:11 EDT
Thanks, Ivan!