Hi Peter. Do you have any existing entities in the datastore that were
stored before you made this change? If so, the exception is likely being
thrown when one of these entities is retrieved. Since you've changed the
primary key field, you may have to remove the original entity and re-add it.

You can inspect the data in your production datastore by signing in to the
Admin Console: http://appengine.google.com.

- Jason

On Fri, Oct 30, 2009 at 12:14 PM, pgoetz <pgo...@pgoetz.de> wrote:

>
> Hello Group!
>
> I hope you can help me with a ClassCastException in my web
> application. I refactored my entity classes (JDO) to use a String
> primary key instead of a Long. In my local environment everything
> works fine. But when I deploy the application to appspot.com, I get
> this exception:
> javax.servlet.ServletException: java.lang.ClassCastException: cannot
> assign instance of java.lang.Long to field
> de.pgoetz.jannalinda.jdo.User.id of type java.lang.String in instance
> of de.pgoetz.jannalinda.jdo.User
>        at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle
> (AppVersionHandlerMap.java:240)
>        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:239)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5135)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5133)
>        at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> (BlockingApplicationHandler.java:24)
>        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 363)
>        at com.google.net.rpc.impl.Server$2.run(Server.java:814)
>        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:769)
>        at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
>        at com.google.net.rpc.impl.ServerConnection.messageReceived
> (ServerConnection.java:437)
>        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:
> 436)
>        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:396)
>        at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.ClassCastException: cannot assign instance of
> java.lang.Long to field de.pgoetz.jannalinda.jdo.User.id of type
> java.lang.String in instance of de.pgoetz.jannalinda.jdo.User
>        at
> java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(Unknown
> Source)
>        at java.io.ObjectStreamClass.setObjFieldValues(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:385)
>        at com.google.apphosting.runtime.jetty.SessionManager.loadSession
> (SessionManager.java:307)
>        at com.google.apphosting.runtime.jetty.SessionManager.getSession
> (SessionManager.java:282)
>        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:238)
>        ... 27 more
>
> To me it seems as if app engine has still references to my old classes
> and now tries to instantiate those ones and new ones as well.
> Has anybody had such a problem yet? Is it possible to completely
> undeploy the application at appspot.com? Or is there another solution
> for this problem?
>
> Thank you very much for your help!
>
> Greetings from Munich!
>
> Peter
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to