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