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

Bug 481089

Summary: Another Singing Exception with nightly target
Product: [RT] RAP Reporter: Ralf Sternberg <rsternberg>
Component: RWTAssignee: Markus Knauer <mknauer>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3 CC: mknauer
Version: 3.1   
Target Milestone: 3.1 M3   
Hardware: All   
OS: All   
Whiteboard:

Description Ralf Sternberg CLA 2015-10-30 05:09:49 EDT

    
Comment 1 Ralf Sternberg CLA 2015-10-30 05:13:04 EDT
Clean workspace, nightly target from Oct 28, 2015. Running a snippet that includes fileupload (RWT launcher) leads to the following exception. I don't have any org.eclipse.rap.* bundles in my workspace, so I'm sure that all bits are coming from this target.

2015-10-30 10:04:24.886:INFO::main: Logging initialized @506ms
2015-10-30 10:04:25.096:INFO:oejs.Server:main: jetty-9.3.2.v20150730
2015-10-30 10:04:25.325:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2015-10-30 10:04:26.550:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@130dca52{/,file:///home/ralf/workspaces/RAP-ECE2015/.metadata/.plugins/org.eclipse.rap.tools.launch.rwt/FileDialogDropSnippet/web-app/,AVAILABLE}{/home/ralf/workspaces/RAP-ECE2015/.metadata/.plugins/org.eclipse.rap.tools.launch.rwt/FileDialogDropSnippet/web-app}
2015-10-30 10:04:26.570:INFO:oejs.ServerConnector:main: Started ServerConnector@7b84fcf8{HTTP/1.1,[http/1.1]}{0.0.0.0:43525}
2015-10-30 10:04:26.572:INFO:oejs.Server:main: Started @2194ms
2015-10-30 10:04:28.039:WARN:oejs.ServletHandler:qtp650023597-15: /rap
java.lang.RuntimeException: Could not create entrypoint instance: examples.FileDialogDropSnippet
	at org.eclipse.rap.rwt.internal.lifecycle.DefaultEntryPointFactory.create(DefaultEntryPointFactory.java:52)
	at org.eclipse.rap.rwt.internal.lifecycle.PrepareUIRoot.createEntryPoint(PrepareUIRoot.java:54)
	at org.eclipse.rap.rwt.internal.lifecycle.PrepareUIRoot.execute(PrepareUIRoot.java:40)
	at org.eclipse.rap.rwt.internal.lifecycle.PhaseExecutor.execute(PhaseExecutor.java:38)
	at org.eclipse.rap.rwt.internal.lifecycle.SimpleLifeCycle.execute(SimpleLifeCycle.java:46)
	at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.executeLifeCycle(RWTMessageHandler.java:57)
	at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.handleMessage(RWTMessageHandler.java:41)
	at org.eclipse.rap.rwt.internal.remote.MessageChainElement.handleMessage(MessageChainElement.java:29)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processMessage(LifeCycleServiceHandler.java:128)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:100)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)
	at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)
	at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)
	at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:816)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1114)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1048)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
	at org.eclipse.jetty.server.Server.handle(Server.java:517)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:302)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
	at java.lang.Thread.run(Thread.java:745)
Caused by: 
java.lang.SecurityException: class "org.eclipse.swt.widgets.FileDialog"'s signer information does not match signer information of other classes in the same package
	at java.lang.ClassLoader.checkCerts(ClassLoader.java:895)
	at java.lang.ClassLoader.preDefineClass(ClassLoader.java:665)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:758)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getConstructor0(Class.java:3075)
	at java.lang.Class.getDeclaredConstructor(Class.java:2178)
	at org.eclipse.rap.rwt.internal.util.ClassUtil.createInstance(ClassUtil.java:53)
	at org.eclipse.rap.rwt.internal.util.ClassUtil.newInstance(ClassUtil.java:38)
	at org.eclipse.rap.rwt.internal.util.ClassUtil.newInstance(ClassUtil.java:32)
	at org.eclipse.rap.rwt.internal.lifecycle.DefaultEntryPointFactory.create(DefaultEntryPointFactory.java:49)
	at org.eclipse.rap.rwt.internal.lifecycle.PrepareUIRoot.createEntryPoint(PrepareUIRoot.java:54)
	at org.eclipse.rap.rwt.internal.lifecycle.PrepareUIRoot.execute(PrepareUIRoot.java:40)
	at org.eclipse.rap.rwt.internal.lifecycle.PhaseExecutor.execute(PhaseExecutor.java:38)
	at org.eclipse.rap.rwt.internal.lifecycle.SimpleLifeCycle.execute(SimpleLifeCycle.java:46)
	at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.executeLifeCycle(RWTMessageHandler.java:57)
	at org.eclipse.rap.rwt.internal.service.RWTMessageHandler.handleMessage(RWTMessageHandler.java:41)
	at org.eclipse.rap.rwt.internal.remote.MessageChainElement.handleMessage(MessageChainElement.java:29)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processMessage(LifeCycleServiceHandler.java:128)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.processUIRequest(LifeCycleServiceHandler.java:100)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.synchronizedService(LifeCycleServiceHandler.java:75)
	at org.eclipse.rap.rwt.internal.service.LifeCycleServiceHandler.service(LifeCycleServiceHandler.java:66)
	at org.eclipse.rap.rwt.engine.RWTServlet.handleValidRequest(RWTServlet.java:135)
	at org.eclipse.rap.rwt.engine.RWTServlet.handleRequest(RWTServlet.java:117)
	at org.eclipse.rap.rwt.engine.RWTServlet.doPost(RWTServlet.java:107)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:816)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1114)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1048)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
	at org.eclipse.jetty.server.Server.handle(Server.java:517)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:302)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:245)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
	at java.lang.Thread.run(Thread.java:745)
Comment 2 Markus Knauer CLA 2015-10-30 06:07:02 EDT
That is an unfortunate series of events. Good that we found so quickly!

The problem is fixed in the updated nightly build at

  http://download.eclipse.org/rt/rap/nightly/runtime/

but the org.eclipse.rap.filedialog_3.1.0.20150901-0753.jar bundle that caused the exception needs to be removed manually if it had been downloaded in an earlier build/target resultion.


Background of this bug:

- The org.eclipse.rap.rwt and the org.eclipse.rap.filedialog bundles both provide classes in the org.eclipse.swt.widgets package namespace.

- Due to several other reasons, the RAP 3.1.0 M2 build could not be signed. We had to contribute it to the Neon M2 Simultaneous Release build with unsigned artifacts.

- Since yesterday our *nightly* build job is signing its output again after a long period of producing only unsigned bundles.

- Since yesterday we enabled the comparison against a baseline-repo (which included the M2 repository with the unsigned content)

Because of these reasons, the otherwise unchanged filedialog bundle had been replaced during build time with the unsigned version which made it impossible to use it together with the signed org.eclipse.rap.rwt bundle.

The baseline-repo is now disabled in the build. It should be enabled again, after we deliver our signed M3. At the same time we should remove the M2 build from the composite repository to prevent other problems in that area.
Comment 3 Ivan Furnadjiev CLA 2016-01-26 04:50:53 EST
(In reply to comment #2)
> That is an unfortunate series of events. Good that we found so quickly!
> 
> The problem is fixed in the updated nightly build at
> 
> http://download.eclipse.org/rt/rap/nightly/runtime/

Probably we forgot to close the bug. Closing now.