Unable to find the reason for this error : NoClassDefFoundError: Could not initialize class com.google.apphosting.runtime.security.shared.stub.sun.security.provider.Sun.

438 views
Skip to first unread message

Shashikanth Reddy

unread,
May 20, 2016, 6:41:56 AM5/20/16
to Google App Engine
How to fix this error?
Here are the full logs:
java.lang.NoClassDefFoundError: Could not initialize class com.google.apphosting.runtime.security.shared.stub.sun.security.provider.Sun
	at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
	at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1743)
	at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:72)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:250)
	at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:248)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:247)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:613)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1746)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1630)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1907)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1462)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2140)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2064)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1936)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1462)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2140)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2064)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1936)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1462)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:417)
	at com.google.apphosting.utils.servlet.DeferredTaskServlet.readRequest(DeferredTaskServlet.java:218)
	at com.google.apphosting.utils.servlet.DeferredTaskServlet.performRequest(DeferredTaskServlet.java:142)
	at com.google.apphosting.utils.servlet.DeferredTaskServlet.service(DeferredTaskServlet.java:101)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
	at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:37)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:50)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
	at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:260)
	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:923)
	at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:78)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:148)
	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:468)
	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:439)
	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:446)
	at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:310)
	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:302)
	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:443)
	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235)
	at java.lang.Thread.run(Thread.java:745)

Nick (Cloud Platform Support)

unread,
May 20, 2016, 2:12:52 PM5/20/16
to Google App Engine
Hey Shashikanth,

There's not much we can analyze from a single stack trace, especially in this case where the stack trace doesn't touch any user code. Given that fact, it seems best that you post this stack trace, along with more information about your app, runtime, etc. to the Public Issue Tracker so that we can properly process what appears to be an internal issue. 

Feel free to post the link to the thread here once you've made it, and we'll be happy to take a look as soon as we can.

Sincerely,

Nick
Cloud Platform Community Support

Nick

unread,
May 20, 2016, 11:39:12 PM5/20/16
to Google App Engine
The static initialiser in the Sun class is throwing an exception. It's being called because it's being deserialised using Java serialization as part of an object graph.

Are you using sessions (potentially the async sessions)? It's possible you've stored something in there that can't be deserialised, and that's what's failing. If you are, try stopping the save being deferred, or just turning it off to see if you can isolate a cause and make it easier to reproduce. By the looks of it there's only two long term options - a code fix (which is serialization version compatible) or not storing whatever object graph is causing it.

In the short time you might be able to force initialisation yourself using reflection in a servlet filter - note the ofy filter gets a chance to run in this call stack. At least you could try/catch/log the real exception.

Emanuele Ziglioli

unread,
May 23, 2016, 6:31:59 PM5/23/16
to Google App Engine
Are all the required App Engine jars in your lib folder?
Check your pom, starting from
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>${appengine.version}</version>
</dependency>

Also make sure there are no multiple versions of the same jars.
What jre version are your running?
Finally, how do you launch the server?

Reply all
Reply to author
Forward
0 new messages