[appengine-java] java.io.NotSerializableException

2011-03-26 Thread Melanie Kirchner
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

2011-03-28 Thread Melanie Kirchner
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

2011-03-29 Thread Melanie Kirchner
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.