Details
-
Test
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
StateTransitionsReturnedObjects fails with:
Assertions A5.9-1 through A5.5.8 (serialization, detachment, attachment) failed:
StateTransitionsReturnedObjects: no transaction; current state persistent-nontransactional-dirty
serialize outside tx; unexpected exception caught: com.objectdb.jdo._JDOUserException: Attempt to modify an object with no active transaction when NontransactionalWrite is disabled: org.apache.jdo.tck.pc.lifecycle.StateTransitionObj#3
FailedObject:org.apache.jdo.tck.pc.lifecycle.StateTransitionObj@701a27
It seems that StateTransitionsReturnedObjects assumes non transactional write enabled by default. Checking if the implementation supports non transactional write is insufficient (when it is not the default setting).
An explicit:
pm.currentTransaction().setNontransactionalWrite(true);
is needed in getPersistentNontransactionalDirtyInstance, before:
obj.writeField(10000);