java.lang.SecurityException: SHA1 digest error for org/eclipse/jdt/internal/compiler/env/INameEnvironment.class

Bug #594316 reported by Tomek Ceszke
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
play framework
Fix Committed
Undecided
Unassigned

Bug Description

After update and build play sources I tried to update my application hosted on google app engine using, as always, appcfg tool.
On local environment application works good, but in production (gae env.) I get a 500 server error.
In logs I can find 2 following exceptions:

Failed startup of context com.google.apphosting.utils.jetty.RuntimeAppEngineWebAppContext@1fc25e5{/,/base/data/home/apps/XXXXXXXX/1.342668315613922849}
java.lang.SecurityException: SHA1 digest error for org/eclipse/jdt/internal/compiler/env/INameEnvironment.class
 at com.google.appengine.runtime.Request.process-18590ed9c3cbb6ea(Request.java)
 at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
 at java.util.jar.JarVerifier.processEntry(Unknown Source)
 at java.util.jar.JarVerifier.update(Unknown Source)
 at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
 at sun.misc.Resource.getBytes(Unknown Source)
 at java.net.URLClassLoader.defineClass(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClassInternal(Unknown Source)
 at play.classloading.ApplicationClasses.<init>(ApplicationClasses.java:31)
 at play.Play.init(Play.java:181)
 at play.server.ServletWrapper.contextInitialized(ServletWrapper.java:54)
 at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
 at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
 at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
 at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
 at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
 at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
 at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:191)
 at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
 at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
 at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250)
 at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5838)
 at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5836)
 at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
 at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398)
 at com.google.net.rpc.impl.Server$2.run(Server.java:852)
 at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
 at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576)
 at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
 at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
 at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442)
 at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319)
 at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290)
 at com.google.net.async.Connection.handleReadEvent(Connection.java:474)
 at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831)
 at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207)
 at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103)
 at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
 at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:413)
 at java.lang.Thread.run(Unknown Source)

and:

Uncaught exception from servlet
javax.servlet.UnavailableException: Initialization failed.
 at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:200)
 at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:168)
 at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123)
 at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:250)
 at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5838)
 at com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:5836)
 at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
 at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:398)
 at com.google.net.rpc.impl.Server$2.run(Server.java:852)
 at com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56)
 at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:576)
 at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
 at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
 at com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:442)
 at com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319)
 at com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290)
 at com.google.net.async.Connection.handleReadEvent(Connection.java:474)
 at com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:831)
 at com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207)
 at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:103)
 at com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251)
 at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:413)
 at java.lang.Thread.run(Unknown Source)

Using play 1.1-unstable-localbuild from the newest sources, tried with gae module in version 1.0.1 and 1.0.2

Tags: gae sha1
Revision history for this message
torbjornvatn (torbjorn-vatn) wrote :

I'm using 1.1-unstable-r926 and gae module built from source and get the exact same error.

/torbjørn

Revision history for this message
Julien Richard-Foy (julien-rf) wrote :

Same problem with play-1.1-beta2, gae-1.0.3 module and appengine-java-sdk-1.3.7

Revision history for this message
alexei guevara (alexguev) wrote :

same here. I'm running play/gae on snow leopard.

Revision history for this message
alexei guevara (alexguev) wrote :

The issues is being caused by the jdt.core jar (org.eclipse.jdt.core_3.6.0.v_A56.jar) in the play/framework/lib folder which gae seems not to like because it is signed. All that is necessary to get the app working again is to unsign the jar and re-deploy.

how to unsign a jar - http://frank.neatstep.com/node/29

Changed in play:
status: New → Fix Committed
milestone: none → 1.1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.