[ 
https://issues.apache.org/jira/browse/JDO-466?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474120
 ] 

Andy Jefferson commented on JDO-466:
------------------------------------

The PK class for the OrderItem has an incorrect equals() method. It uses "==" 
but should use equals() ... like this

public boolean equals(Object obj) {
    if (obj==null || !this.getClass().equals(obj.getClass())) 
        return false;
    OrderItemOid o = (OrderItemOid) obj;
    if ((!this.order.equals(o.order)) || (this.item != o.item)) {
        return false;
    }
    return true;
}

The use of == means that when performing reachability checks JPOX tries to 
remove all reachables from the collection of newly persisted object ids and 
fails to remove the OrderItem ... hence it gets deleted by reachability. 
Changing the equals() as above passes the test :-)

> Test for compound identity fails
> --------------------------------
>
>                 Key: JDO-466
>                 URL: https://issues.apache.org/jira/browse/JDO-466
>             Project: JDO
>          Issue Type: Bug
>          Components: tck2
>    Affects Versions: JDO 2 maintenance release 1
>            Reporter: Michelle Caisse
>         Assigned To: Andy Jefferson
>
> The new test CompletenessTestOrder (use compoundidentity.conf) fails on the 
> RI. It appears that the OrderItem instances are not persisted to the database.
>     [echo] Starting configuration="compoundidentity.conf" with 
> database="derby"identitytype="applicationidentity" mapping="".
>     [java] RUN CompletenessTestOrder.test          FAILURE
>     [java] Description: Completeness test with standard mapping using order 
> model for compound identity testing
>     [java] Time: 009
>     [java] There was 1 failure:
>     [java] 1) 
> test(org.apache.jdo.tck.mapping.CompletenessTestOrder)junit.framework.AssertionFailedError:
>  CompletenessTestOrder failed; see list of failures below:
>     [java] Expected this  instance:
>     [java]     [EMAIL PROTECTED]
>     [java] Got persistent instance:
>     [java]     [EMAIL PROTECTED]
>     [java] Detailed list of differences follows...
>     [java] Context: Order<1>.items
>     [java] expected '[EMAIL PROTECTED]'
>     [java]   actual '[]'
>     [java]
>     [java]      at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:639)
>     [java]      at 
> org.apache.jdo.tck.mapping.CompletenessTestOrder.test(CompletenessTestOrder.java:122)
>     [java]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     [java]      at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     [java]      at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     [java]      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:254)
>     [java]      at 
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:108)
>     [java]      at 
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:148)
>     [java]      at 
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to