Ah yes, I was looking for that very switch to disable Sessions and it did help isolate the problem towards a field within my class being pushed into the Session. The field is java.text.SimpleDateFormat which does implement Serializable so don't know why the system would be able to serialize it, then NOT be able to deserialize it. I think for now I will tag it as Transient and re-init it before use.
On Aug 19, 10:17 am, Toby Reyelts <[email protected]> wrote: > Unfortunately, I don't understand exactly why the problem is still occurring > for you. The stacktrace you shared points directly to failure of > deserialization of a session attribute: > > .... > at java.io.ObjectInputStream.readObject0(Unknown Source) > at java.io.ObjectInputStream.readObject(Unknown Source) > * at com.google.apphosting.runtime.**jetty.SessionManager.** > deserialize(SessionManager.java:358) > * at > com.google.apphosting.runtime.jetty.SessionManager.loadSession(SessionManager.java:280) > .... > > Are you absolutely sure you're not putting something into the HttpSession? > The two steps I would take are to: > > 1) disable http sessions in appengine-web.xml then > 2) delete all http sessions saved in the datastore > > On Wed, Aug 19, 2009 at 10:45 AM, James H <[email protected]>wrote: > > > > > > > Ok, I reviewed my use of Session attribute (I only use 1 called > > userSession) and cleaned up a few things such as the serial UID, etc. > > During production testing, I also Deleted the _ah_Session rows and I > > notice the problem still occurred on the home page as before. So, I > > modified the app to NOT perform any session.put() calls. And this > > same exception is still occurring. > > > The behavior is as follows. Launch a new browser and the home page > > comes up, try to Refresh the home page and the exception gets thrown. > > Is it possible the deploy is NOT refreshing ALL my code in > > production? Is there a way to force the deploy to do a truncate/load > > rather than an incremental? I hate to think there are some stale > > classes out there being loaded somehow... > > > So, as before I do NOT see any relation at this point between this > > error and my coding. From the trace, the error is NOT occurring > > within the scope of my code. Any other ideas? > > > On Aug 18, 6:42 pm, Toby Reyelts <[email protected]> wrote: > > > You probably have something stored in your session that's not > > deserializing. > > > If you clear your sessions, this problem should go away. In the next > > > release, this problem should be fixed under most circumstances. > > > > On Tue, Aug 18, 2009 at 6:05 PM, James H <[email protected]> > > wrote: > > > > > My app has been working well, but after this weekends changes my > > > > deployment does NOT come online clean...though I can't related the > > > > error to anything that has changed. The stack trace is attempting to > > > > load the JSP, so it doesn't appear the problem is related to running > > > > the JSP. Hence, execution has NOT reached my code! Any ideas? > > > > > Naturally, all works fine during local testing. So, this is only > > > > failing in production. > > > > > EXCEPTION > > > > javax.servlet.ServletException: java.lang.ArrayStoreException: > > > > [Ljava.lang.String; > > > > at > > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle > > > > (AppVersionHandlerMap.java:239) > > > > at org.mortbay.jetty.handler.HandlerWrapper.handle > > > > (HandlerWrapper.java:139) > > > > at org.mortbay.jetty.Server.handle(Server.java:313) > > > > at > > > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java: > > > > 506) > > > > at > > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete > > > > (HttpConnection.java:830) > > > > at > > > > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable > > > > (RpcRequestParser.java:76) > > > > at > > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > > > > at > > > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest > > > > (JettyServletEngineAdapter.java:139) > > > > at com.google.apphosting.runtime.JavaRuntime.handleRequest > > > > (JavaRuntime.java:235) > > > > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > > > > $6.handleBlockingRequest(RuntimePb.java:4823) > > > > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > > > > $6.handleBlockingRequest(RuntimePb.java:4821) > > > > at > > com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest > > > > (BlockingApplicationHandler.java:24) > > > > at > > com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > > > > 359) > > > > at com.google.net.rpc.impl.Server$2.run(Server.java:820) > > > > at com.google.tracing.LocalTraceSpanRunnable.run > > > > (LocalTraceSpanRunnable.java:56) > > > > at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan > > > > (LocalTraceSpanBuilder.java:516) > > > > at com.google.net.rpc.impl.Server.startRpc(Server.java:775) > > > > at > > com.google.net.rpc.impl.Server.processRequest(Server.java:348) > > > > at com.google.net.rpc.impl.ServerConnection.messageReceived > > > > (ServerConnection.java:436) > > > > 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: > > > > 428) > > > > at com.google.net.async.EventDispatcher.processNetworkEvents > > > > (EventDispatcher.java:762) > > > > at com.google.net.async.EventDispatcher.internalLoop > > > > (EventDispatcher.java:207) > > > > at > > com.google.net.async.EventDispatcher.loop(EventDispatcher.java: > > > > 101) > > > > at com.google.net.rpc.RpcService.runUntilServerShutdown > > > > (RpcService.java:251) > > > > at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run > > > > (JavaRuntime.java:374) > > > > at java.lang.Thread.run(Unknown Source) > > > > Caused by: java.lang.ArrayStoreException: [Ljava.lang.String; > > > > at java.io.ObjectInputStream.readArray(Unknown Source) > > > > at java.io.ObjectInputStream.readObject0(Unknown Source) > > > > at java.io.ObjectInputStream.defaultReadFields(Unknown Source) > > > > at java.io.ObjectInputStream.readSerialData(Unknown Source) > > > > at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) > > > > at java.io.ObjectInputStream.readObject0(Unknown Source) > > > > at java.io.ObjectInputStream.defaultReadFields(Unknown Source) > > > > at java.io.ObjectInputStream.readSerialData(Unknown Source) > > > > at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) > > > > at java.io.ObjectInputStream.readObject0(Unknown Source) > > > > at java.io.ObjectInputStream.defaultReadFields(Unknown Source) > > > > at java.io.ObjectInputStream.readSerialData(Unknown Source) > > > > at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) > > > > at java.io.ObjectInputStream.readObject0(Unknown Source) > > > > at java.io.ObjectInputStream.readObject(Unknown Source) > > > > at java.util.HashMap.readObject(Unknown Source) > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > > > > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown > > Source) > > > > at java.lang.reflect.Method.invoke(Unknown Source) > > > > at java.io.ObjectStreamClass.invokeReadObject(Unknown Source) > > > > at java.io.ObjectInputStream.readSerialData(Unknown Source) > > > > at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) > > > > at java.io.ObjectInputStream.readObject0(Unknown Source) > > > > at java.io.ObjectInputStream.defaultReadFields(Unknown Source) > > > > at java.io.ObjectInputStream.readSerialData(Unknown Source) > > > > at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) > > > > at java.io.ObjectInputStream.readObject0(Unknown Source) > > > > at java.io.ObjectInputStream.readObject(Unknown Source) > > > > at > > com.google.apphosting.runtime.jetty.SessionManager.deserialize > > > > (SessionManager.java:358) > > > > at > > com.google.apphosting.runtime.jetty.SessionManager.loadSession > > > > (SessionManager.java:280) > > > > at com.google.apphosting.runtime.jetty.SessionManager.getSession > > > > (SessionManager.java:255) > > > > at > > org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession > > > > (AbstractSessionManager.java:237) > > > > at org.mortbay.jetty.Request.getSession(Request.java:998) > > > > at org.mortbay.jetty.servlet.SessionHandler.handle > > > > (SessionHandler.java:192) > > > > at org.mortbay.jetty.handler.ContextHandler.handle > > > > (ContextHandler.java:712) > > > > at > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > > > > 405) > > > > at > > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle > > > > (AppVersionHandlerMap.java:237) > > > > ... 27 more- Hide quoted text - > > > > - Show quoted text -- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en -~----------~----~----~----~------~----~------~--~---
