Similar to issue #57, the NPE was caused by the data serializer:
java.lang.NullPointerException
at org.zoodb.api.impl.ZooPC.jdoZooGetClassDef(ZooPC.java:286)
at org.zoodb.internal.DataSerializer.writeClassInfo(DataSerializer.java:601)
at org.zoodb.internal.DataSerializer.serializeObject(DataSerializer.java:359)
at org.zoodb.internal.DataSerializer.serializeObject(DataSerializer.java:408)
at org.zoodb.internal.DataSerializer.serializeFields2(DataSerializer.java:214)
at org.zoodb.internal.DataSerializer.writeObject(DataSerializer.java:175)
at org.zoodb.internal.model1p.DataSink1P.write(DataSink1P.java:108)
at org.zoodb.internal.Session.commitInternal(Session.java:312)
at org.zoodb.internal.Session.commit(Session.java:150)
at org.zoodb.jdo.impl.TransactionImpl.commit(TransactionImpl.java:85)
See test Test_084_SerailizationBugs.testSerialization().
For the test description:
Executing a query calls the OGT. Unfortunately, the OGT put all dirty objects on a seenObjects list, which was never deleted. In a subsequent run (i.e. the actual commit), the object (ProjectPC) was not checked again, even if it had been modified.
This usually worked because:
a) updates and queries occurred in separate transactions
Similar to issue #57, the NPE was caused by the data serializer:
See test
Test_084_SerailizationBugs.testSerialization()
.For the test description: Executing a query calls the OGT. Unfortunately, the OGT put all dirty objects on a seenObjects list, which was never deleted. In a subsequent run (i.e. the actual commit), the object (ProjectPC) was not checked again, even if it had been modified. This usually worked because:
c) updates often occur on primitives
In all above cases, the error would not occur.