Hi,
This is also known as JDO-513 and JDO-514 in the issue tracker.
JDO-513:
StateTransitionsReturnedObjects fails with:
junit.framework.AssertionFailedError:
Assertions A5.9-1 through A5.5.8 (serialization, detachment, attachment)
failed:
StateTransitionsReturnedObjects: optimistic transaction; current state
detached-clean
makePersistent returned instance in invalid state hollow; expected state
persistent-clean
It seems that in optimistic transaction the object state should be
persistent non transactional rather than persistent clean.
JDO-514:
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:[EMAIL PROTECTED]
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);
Regards,
Ilan Kirsh
ObjectDB Software
http://www.objectdb.com