Hi,
It might be better to have this discussion attached to a JIRA issue.
Is the test case checked in?
Craig
On Nov 23, 2005, at 2:56 AM, Michael Watzek wrote:
Hi Andy,
I'm implementing test cases for deletion by query. Assertion
A14.8-4 specifies (amongst others) that dirty instances are flushed
to the datastore before they are deleted.
The test case implementing this assertion adds a lifecycle listener
to the persistence manager. The listener checks the order of events
fired by JPOX. The test case fails if store events are fired after
the first delete event was fired.
JPOX fires the right order of events when instances are involved
not having any relationships. Involving instances having
relationships JPOX does not stick to that order.
For example:
The test case updates all employees. Afterwards, it deletes these
employees using Query.deletePersistentAll inside the same
transaction. If the test case uses employees having relationships,
it appears, that some store events are fired between preDelete and
postDelete events fired on the same instance. On the other hand, if
the test case uses employees without relationships the order of
events meets the spec. Please have a look below.
Is the different event handling concerning relationships intentional?
Regards,
Michael
Events fired on persons without relationships:
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 1
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 2
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 3
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 4
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 5
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 5
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 5
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 5
Events fired on persons with relationships:
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 5
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 5
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 1
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 2
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 3
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 4
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 5
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 1
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 2
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 3
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 4
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 5
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 1
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 3
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] preStore event: org.apache.jdo.tck.pc.company.Person$Oid: 4
[java] postStore event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 2
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 3
[java] preDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
[java] postDelete event: org.apache.jdo.tck.pc.company.Person
$Oid: 4
--
-------------------------------------------------------------------
Michael Watzek [EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED] Buelowstr. 66
Tel.: ++49/30/235 520 36 10783 Berlin - Germany
Fax.: ++49/30/217 520 12 http://www.spree.de/
-------------------------------------------------------------------
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!