surinder-insonix / datanucleus-appengine

Automatically exported from code.google.com/p/datanucleus-appengine
0 stars 0 forks source link

persistent ArrayList NPE during clear() with dependent objects #224

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead
I see this exception reported repeatedly as I try to clear the dependant 
objects within my object model.

12-11 02:23PM 38.454
com.ninuku.memories.server.task2.handler.SimpleTaskHandler execute: executing 
task operation: class 
com.ninuku.memories.server.task2.operation.FinalizeTextChapterTaskOp
E 12-11 02:23PM 39.608
org.datanucleus.transaction.Transaction commit: Operation commit failed on 
resource: org.datanucleus.store.appengine.DatastoreXAResource@8adb01, error 
code UNKNOWN and transaction: [DataNucleus Transaction, ID=Xid=
E 12-11 02:23PM 39.609
com.ninuku.memories.server.task2.operation.FinalizeTextChapterTaskOp execute: 
RETRY database error while finalizing Text chapters: Transaction rolled back 
due to failure during commit
I 12-11 02:23PM 39.609
com.ninuku.memories.server.task2.handler.SimpleTaskHandler execute: executing 
task operation: class 
com.ninuku.memories.server.task2.operation.FinalizeTextChapterTaskOp
W 12-11 02:23PM 40.090
com.ninuku.memories.server.task2.operation.FinalizeTextChapterTaskOp execute: 
RETRY database error while finalizing text chapters
W 12-11 02:23PM 40.094
/task/simple
java.lang.NullPointerException
    at org.datanucleus.store.appengine.DatastorePersistenceHandler.deleteObject(DatastorePersistenceHandler.java:581)
    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.FKListStore.internalRemove(FKListStore.java:423)
    at org.datanucleus.store.mapped.scostore.AbstractListStore.remove(AbstractListStore.java:283)
    at org.datanucleus.sco.backed.ArrayList.remove(ArrayList.java:871)
    at org.datanucleus.sco.backed.ArrayList.remove(ArrayList.java:835)
    at org.datanucleus.store.mapped.mapping.PersistenceCapableMapping.preDelete(PersistenceCapableMapping.java:1308)
    at org.datanucleus.store.appengine.DependentDeleteRequest.execute(DependentDeleteRequest.java:71)
    at org.datanucleus.store.appengine.DatastorePersistenceHandler.deleteObject(DatastorePersistenceHandler.java:613)
    at org.datanucleus.state.JDOStateManagerImpl.internalDeletePersistent(JDOStateManagerImpl.java:4198)
    at org.datanucleus.state.JDOStateManagerImpl.deletePersistent(JDOStateManagerImpl.java:4166)
    at org.datanucleus.ObjectManagerImpl.deleteObjectInternal(ObjectManagerImpl.java:1470)
    at org.datanucleus.store.mapped.scostore.FKListStore.clear(FKListStore.java:585)
    at org.datanucleus.sco.backed.ArrayList.clear(ArrayList.java:822)
    at com.ninuku.memories.server.journal.TextChapter.finalizeChapter(TextChapter.java:495)
----------------------------------
the finalizeChapter method is simple

public void finalizeChapter(String pdfUrl) {
    this.pdfUrl = pdfUrl;
    // Mark this Chapter as FINAL
    this.finalized = true;
    this.finalizedDate = new Long( System.currentTimeMillis() );
    // Final release of TextEntrys      
    this.textEntries.clear();   
}

-------------------------------------
The relevant schema for the parent is:
    /**
     * a set of entries used within this Chapter
     */
    @Persistent(mappedBy = "chapter")
    @Order(column="TEXTCHAPTER_TEXTENTRY_IDX")
    @Element(dependent="true")
    private ArrayList< TextEntry> textEntries = new ArrayList< TextEntry>();
------------------------------------

What version of the product are you using? On what operating system?
GAE 1.4.0

Please provide any additional information below.
The app id is: ninuku-archivist

Original issue reported on code.google.com by andy.stevko on 13 Dec 2010 at 7:47

GoogleCodeExporter commented 8 years ago
I'm experiencing the same problem. Being able to delete is a pretty key piece 
of functionality for the app I'm working on.

Original comment by PRAgara...@gmail.com on 3 Apr 2011 at 7:46

GoogleCodeExporter commented 8 years ago
Testcase that demonstrates such a thing ?

Original comment by googleco...@yahoo.co.uk on 21 Sep 2011 at 3:55

GoogleCodeExporter commented 8 years ago
No testcase available to demonstrate this so closing. If you come up with a 
testcase then attach it and things can be reopened

Original comment by googleco...@yahoo.co.uk on 8 Feb 2012 at 6:58