Hello, I have been testing JDO on app engine all day and have come up with the following problem on 2.0 RC2: I have a class Store with a field Sales with a list of SaleItem, all of which is persistable. When I modify the sale and make the store persistent the first time everything goes OK, but when I try to do it again I get the following error.
Then, if I restart the server, same thing: first time OK, second time this error. I am willing to share the code in private for those interested in reproducing the problem for the purpose of bug fixing. Please let me know if interested, or what I can do to fix the problem. Regards, JG Jan 31, 2012 11:37:22 PM org.datanucleus.store.types.sco.backed.ArrayList remove WARNING: Execution of method "remove" on field "sales" caused an error : Could not determine entity for index=0 with key=ZZZStore(124)/Sale(133) Could not determine entity for index=0 with key=ZZZStore(124)/Sale(133) org.datanucleus.exceptions.NucleusDataStoreException: Could not determine entity for index=0 with key=ZZZStore(124)/Sale(133) at com.google.appengine.datanucleus.scostore.FKListStore.get(FKListStore.java:636) at com.google.appengine.datanucleus.scostore.FKListStore.remove(FKListStore.java:444) at org.datanucleus.store.types.sco.backed.ArrayList.remove(ArrayList.java:897) at org.datanucleus.store.types.sco.SCOListIterator.remove(SCOListIterator.java:134) at org.datanucleus.store.types.sco.SCOUtils.updateListWithListElements(SCOUtils.java:879) at org.datanucleus.store.types.sco.simple.ArrayList.attachCopy(ArrayList.java:228) at org.datanucleus.store.fieldmanager.AttachFieldManager.storeObjectField(AttachFieldManager.java:204) at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1452) at com.foo.comnetdata.ZZZStore.jdoProvideField(Data.java) at com.foo.comnetdata.ZZZStore.jdoProvideFields(Data.java) at org.datanucleus.state.AbstractStateManager.provideFields(AbstractStateManager.java:1520) at org.datanucleus.state.JDOStateManagerImpl.internalAttachCopy(JDOStateManagerImpl.java:3321) at org.datanucleus.state.JDOStateManagerImpl.attachCopy(JDOStateManagerImpl.java:3270) at org.datanucleus.ObjectManagerImpl.attachObjectCopy(ObjectManagerImpl.java:2382) at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1730) at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1657) at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1514) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:739) at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:764) at com.foo.comnetdata.ServerProtocol.persistStore(ServerProtocol.java:30) at com.foo.comnetdata.ServerProtocol.modifySale(ServerProtocol.java:535) at com.foo.comnetdata.ComNetDataServlet.respond(ComNetDataServlet.java:937) at com.foo.comnetdata.ComNetDataServlet.doPost(ComNetDataServlet.java:54) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60) 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 com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) 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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:362) 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.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 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) Caused by: com.google.appengine.api.datastore.EntityNotFoundException: No entity was found matching the key: ZZZStore(124)/Sale(133) at com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:64) at com.google.appengine.datanucleus.WrappedDatastoreService.get(WrappedDatastoreService.java:60) at com.google.appengine.datanucleus.scostore.FKListStore.get(FKListStore.java:634) ... 53 more Nested Throwables StackTrace: com.google.appengine.api.datastore.EntityNotFoundException: No entity was found matching the key: ZZZStore(124)/Sale(133) at com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:64) at com.google.appengine.datanucleus.WrappedDatastoreService.get(WrappedDatastoreService.java:60) at com.google.appengine.datanucleus.scostore.FKListStore.get(FKListStore.java:634) at com.google.appengine.datanucleus.scostore.FKListStore.remove(FKListStore.java:444) at org.datanucleus.store.types.sco.backed.ArrayList.remove(ArrayList.java:897) at org.datanucleus.store.types.sco.SCOListIterator.remove(SCOListIterator.java:134) at org.datanucleus.store.types.sco.SCOUtils.updateListWithListElements(SCOUtils.java:879) at org.datanucleus.store.types.sco.simple.ArrayList.attachCopy(ArrayList.java:228) at org.datanucleus.store.fieldmanager.AttachFieldManager.storeObjectField(AttachFieldManager.java:204) at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1452) at com.foo.comnetdata.ZZZStore.jdoProvideField(Data.java) at com.foo.comnetdata.ZZZStore.jdoProvideFields(Data.java) at org.datanucleus.state.AbstractStateManager.provideFields(AbstractStateManager.java:1520) at org.datanucleus.state.JDOStateManagerImpl.internalAttachCopy(JDOStateManagerImpl.java:3321) at org.datanucleus.state.JDOStateManagerImpl.attachCopy(JDOStateManagerImpl.java:3270) at org.datanucleus.ObjectManagerImpl.attachObjectCopy(ObjectManagerImpl.java:2382) at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1730) at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1657) at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1514) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:739) at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:764) at com.foo.comnetdata.ServerProtocol.persistStore(ServerProtocol.java:30) at com.foo.comnetdata.ServerProtocol.modifySale(ServerProtocol.java:535) at com.foo.comnetdata.ComNetDataServlet.respond(ComNetDataServlet.java:937) at com.foo.comnetdata.ComNetDataServlet.doPost(ComNetDataServlet.java:54) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60) 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 com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) 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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:362) 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.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 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) Jan 31, 2012 11:37:22 PM org.datanucleus.store.types.sco.backed.ArrayList remove WARNING: Execution of method "remove" on field "sales" caused an error : Could not determine entity for index=0 with key=ZZZStore(124)/Sale(133) Could not determine entity for index=0 with key=ZZZStore(124)/Sale(133) org.datanucleus.exceptions.NucleusDataStoreException: Could not determine entity for index=0 with key=ZZZStore(124)/Sale(133) at com.google.appengine.datanucleus.scostore.FKListStore.get(FKListStore.java:636) at com.google.appengine.datanucleus.scostore.FKListStore.remove(FKListStore.java:444) at org.datanucleus.store.types.sco.backed.ArrayList.remove(ArrayList.java:897) at org.datanucleus.store.types.sco.SCOListIterator.remove(SCOListIterator.java:134) at org.datanucleus.store.types.sco.SCOUtils.updateListWithListElements(SCOUtils.java:879) at org.datanucleus.store.types.sco.simple.ArrayList.attachCopy(ArrayList.java:228) at org.datanucleus.store.fieldmanager.AttachFieldManager.storeObjectField(AttachFieldManager.java:204) at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1452) at com.foo.comnetdata.ZZZStore.jdoProvideField(Data.java) at com.foo.comnetdata.ZZZStore.jdoProvideFields(Data.java) at org.datanucleus.state.AbstractStateManager.provideFields(AbstractStateManager.java:1520) at org.datanucleus.state.JDOStateManagerImpl.internalAttachCopy(JDOStateManagerImpl.java:3321) at org.datanucleus.state.JDOStateManagerImpl.attachCopy(JDOStateManagerImpl.java:3270) at org.datanucleus.ObjectManagerImpl.attachObjectCopy(ObjectManagerImpl.java:2382) at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1730) at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1657) at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1514) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:739) at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:764) at com.foo.comnetdata.ServerProtocol.persistStore(ServerProtocol.java:30) at com.foo.comnetdata.ServerProtocol.modifySale(ServerProtocol.java:535) at com.foo.comnetdata.ComNetDataServlet.respond(ComNetDataServlet.java:937) at com.foo.comnetdata.ComNetDataServlet.doPost(ComNetDataServlet.java:54) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60) 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 com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) 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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:362) 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.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 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) Caused by: com.google.appengine.api.datastore.EntityNotFoundException: No entity was found matching the key: ZZZStore(124)/Sale(133) at com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:64) at com.google.appengine.datanucleus.WrappedDatastoreService.get(WrappedDatastoreService.java:60) at com.google.appengine.datanucleus.scostore.FKListStore.get(FKListStore.java:634) ... 53 more Nested Throwables StackTrace: com.google.appengine.api.datastore.EntityNotFoundException: No entity was found matching the key: ZZZStore(124)/Sale(133) at com.google.appengine.api.datastore.DatastoreServiceImpl.get(DatastoreServiceImpl.java:64) at com.google.appengine.datanucleus.WrappedDatastoreService.get(WrappedDatastoreService.java:60) at com.google.appengine.datanucleus.scostore.FKListStore.get(FKListStore.java:634) at com.google.appengine.datanucleus.scostore.FKListStore.remove(FKListStore.java:444) at org.datanucleus.store.types.sco.backed.ArrayList.remove(ArrayList.java:897) at org.datanucleus.store.types.sco.SCOListIterator.remove(SCOListIterator.java:134) at org.datanucleus.store.types.sco.SCOUtils.updateListWithListElements(SCOUtils.java:879) at org.datanucleus.store.types.sco.simple.ArrayList.attachCopy(ArrayList.java:228) at org.datanucleus.store.fieldmanager.AttachFieldManager.storeObjectField(AttachFieldManager.java:204) at org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1452) at com.foo.comnetdata.ZZZStore.jdoProvideField(Data.java) at com.foo.comnetdata.ZZZStore.jdoProvideFields(Data.java) at org.datanucleus.state.AbstractStateManager.provideFields(AbstractStateManager.java:1520) at org.datanucleus.state.JDOStateManagerImpl.internalAttachCopy(JDOStateManagerImpl.java:3321) at org.datanucleus.state.JDOStateManagerImpl.attachCopy(JDOStateManagerImpl.java:3270) at org.datanucleus.ObjectManagerImpl.attachObjectCopy(ObjectManagerImpl.java:2382) at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1730) at org.datanucleus.ObjectManagerImpl.persistObjectWork(ObjectManagerImpl.java:1657) at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1514) at org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:739) at org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:764) at com.foo.comnetdata.ServerProtocol.persistStore(ServerProtocol.java:30) at com.foo.comnetdata.ServerProtocol.modifySale(ServerProtocol.java:535) at com.foo.comnetdata.ComNetDataServlet.respond(ComNetDataServlet.java:937) at com.foo.comnetdata.ComNetDataServlet.doPost(ComNetDataServlet.java:54) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:60) 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 com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) 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.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:78) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:362) 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.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) 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) -- 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.