[appengine-java] java.io.NotSerializableException
Hi, my app is having some problems lately. I haven't changed anything and since some hours I'm getting the following exception during the login proccess (load data from the DB, store them in the session and redirecht to another page). java.lang.RuntimeException: java.io.NotSerializableException: com.google.appengine.api.datastore.LazyList at com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java: 393) at com.google.apphosting.runtime.jetty.SessionManager.createEntityForSession(SessionManager.java: 370) at com.google.apphosting.runtime.jetty.SessionManager $AppEngineSession.save(SessionManager.java:164) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: 41) at org.mortbay.jetty.servlet.ServletHandler $CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: 43) 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: 238) 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: 76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: 135) at com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: 261) at com.google.apphosting.base.RuntimePb$EvaluationRuntime $2.handleRequest(RuntimePb.java:9285) at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: 437) at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java: 573) at com.google.tracing.TraceContext$TraceContextRunnable $1.run(TraceContext.java:448) at com.google.tracing.TraceContext.runInContext(TraceContext.java: 688) at com.google.tracing.TraceContext $AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java: 326) at com.google.tracing.TraceContext $AbstractTraceContextCallback.runInInheritedContext(TraceContext.java: 318) at com.google.tracing.TraceContext $TraceContextRunnable.run(TraceContext.java:446) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 1110) at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) Caused by: java.io.NotSerializableException: com.google.appengine.api.datastore.LazyList at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1173) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 343) at java.util.HashMap.writeObject(HashMap.java:1018) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43) at java.lang.reflect.Method.invoke(Method.java:616) at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java: 962) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java: 1478) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java: 1409) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: 1167) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 343) at com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java: 390) ... 31 more Has something changed on App Engine side? Or has someone an idea what/ why this happend? Thanks, MK -- 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 google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-
[appengine-java] Re: java.io.NotSerializableException
I've created on issue (#4795) for that on http://code.google.com/p/googleappengine/issues/list On 27 Mrz., 13:13, footy wrote: > I am having similar issue with > com.google.appengine.api.datastore.LazyList but it's to do with > writing to Memcache. > I haven't changed anything in the application either. Got any idea? > > I have posted > here:http://groups.google.com/group/google-appengine-java/browse_thread/th... > > On Mar 27, 12:00 am, Melanie Kirchner > > > > > > > > wrote: > > Hi, > > > my app is having some problems lately. I haven't changed anything and > > since some hours I'm getting the following exception during the login > > proccess (load data from the DB, store them in the session and > > redirecht to another page). > > > java.lang.RuntimeException: java.io.NotSerializableException: > > com.google.appengine.api.datastore.LazyList > > at > > com.google.apphosting.runtime.jetty.SessionManager.serialize(SessionManager.java: > > 393) > > at > > com.google.apphosting.runtime.jetty.SessionManager.createEntityForSession(SessionManager.java: > > 370) > > at com.google.apphosting.runtime.jetty.SessionManager > > $AppEngineSession.save(SessionManager.java:164) > > at > > com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java: > > 41) > > at org.mortbay.jetty.servlet.ServletHandler > > $CachedChain.doFilter(ServletHandler.java:1157) > > at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > > 43) > > 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: > > 238) > > 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: > > 76) > > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > > at > > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java: > > 135) > > at > > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java: > > 261) > > at com.google.apphosting.base.RuntimePb$EvaluationRuntime > > $2.handleRequest(RuntimePb.java:9285) > > at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java: > > 437) > > at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java: > > 573) > > at com.google.tracing.TraceContext$TraceContextRunnable > > $1.run(TraceContext.java:448) > > at com.google.tracing.TraceContext.runInContext(TraceContext.java: > > 688) > > at com.google.tracing.TraceContext > > $AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java: > > 326) > > at com.google.tracing.TraceContext > > $AbstractTraceContextCallback.runInInheritedContext(TraceContext.java: > > 318) > > at com.google.tracing.TraceContext > > $TraceContextRunnable.run(TraceContext.java:446) > > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: > > 1110) > > at java.util.concurrent.ThreadPoolExecutor > > $Worker.run(ThreadPoolExecutor.java:603) > > at java.lang.Thread.run(Thread.java:636) > > Caused by: java.io.NotSerializableException: > > com.google.appengine.api.datastore.LazyList > > at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java: > > 1173
[appengine-java] Re: java.io.NotSerializableException
I figured out that this error occurs when I load data as a list from the DB and try to put them in the session: def query = new Query("mydata") PreparedQuery preparedQuery = datastore.prepare(query) def results = preparedQuery.asList( withLimit(20) ) The class of "results" is com.google.appengine.api.datastore.LazyList (on localhost it is java.util.ArrayList) To avoid the NotSerializableException I put all entries from "results" in a java.util.ArrayList and write this list in the session instead of the "original" list -- 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 google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.