Hi, i´m trying to save some date in my GAE app but this error appear
when I do de makePersistant of my object.

at the end of this mail you can see that in Service Class there are
one-to-one and 2 one-to-many relationships,.

the error Stack is:

java.lang.ClassCastException: oid is not instanceof
javax.jdo.identity.ObjectIdentity
        at dominio.Fichero.jdoCopyKeyFieldsFromObjectId(Fichero.java)
        at
org.datanucleus.store.mapped.mapping.PersistenceCapableMapping.setObjectAsValue(PersistenceCapableMapping.java:
657)
        at
org.datanucleus.store.mapped.mapping.PersistenceCapableMapping.setObject(PersistenceCapableMapping.java:
364)
        at org.datanucleus.store.appengine.DatastoreRelationFieldManager
$1.setObjectViaMapping(DatastoreRelationFieldManager.java:136)
        at org.datanucleus.store.appengine.DatastoreRelationFieldManager
$1.apply(DatastoreRelationFieldManager.java:112)
        at
org.datanucleus.store.appengine.DatastoreRelationFieldManager.storeRelations(DatastoreRelationFieldManager.java:
81)
        at
org.datanucleus.store.appengine.DatastoreFieldManager.storeRelations(DatastoreFieldManager.java:
955)
        at
org.datanucleus.store.appengine.DatastorePersistenceHandler.storeRelations(DatastorePersistenceHandler.java:
546)
        at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertPostProcess(DatastorePersistenceHandler.java:
304)
        at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObjects(DatastorePersistenceHandler.java:
256)
        at
org.datanucleus.store.appengine.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:
240)
        at
org.datanucleus.state.JDOStateManagerImpl.internalMakePersistent(JDOStateManagerImpl.java:
3185)
        at
org.datanucleus.state.JDOStateManagerImpl.makePersistent(JDOStateManagerImpl.java:
3161)
        at
org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:
1298)
        at
org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:
1175)
        at
org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:
669)
        at
org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:
694)
        at org.apache.jsp.test_jsp._jspService(test_jsp.java:114)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:
324)
        at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:
292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at com.google.appengine.tools.development.PrivilegedJspServlet.access
$101(PrivilegedJspServlet.java:23)
        at com.google.appengine.tools.development.PrivilegedJspServlet
$2.run(PrivilegedJspServlet.java:59)
        at java.security.AccessController.doPrivileged(Native Method)
        at
com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:
57)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
511)
        at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)
        at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:
389)
        at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
        at
com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:
58)
        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
com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:
122)
        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.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
70)
        at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
        at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:349)
        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 org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
409)
        at org.mortbay.thread.QueuedThreadPool
$PoolThread.run(QueuedThreadPool.java:582)


My class are:

@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
public class Service implements Serializable {

        /*Attributes*/

                private static final long serialVersionUID = 
-5844108264018094806L;
                @PrimaryKey
                @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
                private Long id;
                @Persistent
                private long code;
                @Persistent
                private String name;
                @Persistent
                private boolean active;
                @Persistent
                private String stateDescription;

        /*Relationship Attributes*/

                @Persistent
                private Owner owner;
                @Persistent
                private Company company;
                @Element(dependent = "true")
                private List<Version> versions;
                @Persistent
                private Fichero iconFile;

                ......
}

@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
public class Fichero implements Serializable {

        private static final long serialVersionUID = -4568341150599424882L;
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;
        @Persistent
        private String fileName;
        @Persistent
        private Blob fileBlob;
        @Persistent
        private String type;

        ...
}

public class Owner implements Serializable {

        /*Attributes*/

                private static final long serialVersionUID = 
7116085479178295467L;
                @PrimaryKey
                @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
                private Key key;
                @Persistent
                private String company;
               ....
}

@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
public class Version implements Serializable{

        /*Attributes*/

        private static final long serialVersionUID = 1900978533549089256L;

        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key;

        /*Relationships Attributes*/

        @Persistent
        private Fichero zipFile;

        @Persistent
        private Fichero xmlModified;

        @Element(dependent = "true")
        private List<Fichero> recursos;

        @Persistent
        private XMLObject xmlObject;
   .....
}

The problem is with Fichero Class as you can see in the error Stack.
As you can see, in Service Class there are one-to-one and 2 one-to-
many relationships, I think this is the problem but, how can I do it??


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

Reply via email to