Upgrading to datanucleus-appengine plugin 2.0 RC2 and changing Extent to Query also made this problem vanish.
Regards, JG On Mon, Jan 30, 2012 at 12:23 AM, John Goche <johngoch...@googlemail.com>wrote: > > Hello, > > I have an object calld XZStore which has a member List<Receipts> receipts. > I add a receipt and make the store persistent. > I do the same a second time. Then I delete the first one and make the > store persistent. All good till now. Then, I delete the > second receipt and make the store persistent and the operation fails with > the following exception: > > java.lang.NullPointerExceptionjava.lang.NullPointerException > at > org.datanucleus.store.appengine.DatastorePersistenceHandler.deleteObject(DatastorePersistenceHandler.java:620) > at > org.datanucleus.store.appengine.DatastoreFKListStoreSpecialization.removeAt(DatastoreFKListStoreSpecialization.java:145) > at > org.datanucleus.store.mapped.scostore.FKListStore.removeAt(FKListStore.java:525) > at > org.datanucleus.store.mapped.scostore.AbstractListStore.remove(AbstractListStore.java:318) > at org.datanucleus.sco.backed.List.remove(List.java:907) > at org.datanucleus.sco.SCOListIterator.remove(SCOListIterator.java:145) > at > org.datanucleus.sco.SCOUtils.updateListWithListElements(SCOUtils.java:828) > at org.datanucleus.sco.simple.List.attachCopy(List.java:232) > at > org.datanucleus.store.fieldmanager.AttachFieldManager.storeObjectField(AttachFieldManager.java:205) > at > org.datanucleus.state.AbstractStateManager.providedObjectField(AbstractStateManager.java:1037) > at com.foobar.foo.XZStore.jdoProvideField(Data.java) > at com.foobar.foo.XZStore.jdoProvideFields(Data.java) > at > org.datanucleus.state.JDOStateManagerImpl.provideFields(JDOStateManagerImpl.java:2715) > at > org.datanucleus.state.JDOStateManagerImpl.internalAttachCopy(JDOStateManagerImpl.java:4055) > at > org.datanucleus.state.JDOStateManagerImpl.attachCopy(JDOStateManagerImpl.java:3987) > at > org.datanucleus.ObjectManagerImpl.attachObjectCopy(ObjectManagerImpl.java:1778) > at > org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1260) > 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 com.foobar.foo.ServerProtocol.deleteReceipt(ServerProtocol.java:431) > at com.foobar.foo.ComNetDataServlet.respond(ComNetDataServlet.java:742) > at com.foobar.foo.ComNetDataServlet.doPost(ComNetDataServlet.java:55) > 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) > > Anyone having this problem? Anyone know how to solve it? Anyone know if > gae datanucleus 2.0 RC2 plugin solves it. > Anyone know how to install 2.0 RC2? > > Hoping someone on this list can help... source code to reproduce this > error available upon request. > > Thanks, > > John Goche > -- 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.