09-25-07 06:11 PM
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: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 getPersistentNontransactionalDirtyInstan
ce, before:
obj.writeField(10000);
Regards,
Ilan Kirsh
ObjectDB Software
http://www.objectdb.com
[ Post a follow-up to this message ]
|