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.

Reply via email to