[ 
https://issues.apache.org/jira/browse/OPENJPA-396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12533193
 ] 

Kevin Sutter commented on OPENJPA-396:
--------------------------------------

[ Show ยป ]
Craig Russell - 08/Oct/07 12:38 PM One other comment: In 
openjpa-kernel/src/test/java/org/apache/openjpa/util/TestProxyManager.java, + 
private static void assertSortedSetsEquals(SortedSet s1, SortedSet s2) { ... + 
assertTrue(s1.equals(s2)); I'm curious what this is testing, after you verified 
that the comparators are equivalent, the sizes are the same, and the contents 
are identical. What else is being tested here, except that the equals method is 
implemented correctly? Is that it?

Correct.  The original problem surfaced because of a .equals() invocation 
between two Calendar objects.  So, even though the Javadoc explains what 
attributes of a given Calendar, Date, Time, etc object are examined for 
.equals(), I just wanted to ensure that we didn't hit this problem again in the 
future because some JVM decided to change their implementation.

> Cloning Calendar proxies doesn't detach from StateManager
> ---------------------------------------------------------
>
>                 Key: OPENJPA-396
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-396
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.0.0, 1.0.1, 1.1.0
>            Reporter: Kevin Sutter
>            Assignee: Kevin Sutter
>             Fix For: 1.0.1, 1.1.0
>
>         Attachments: OPENJPA-396.patch
>
>
> This problem was first discussed on our dev mailing list:  
> http://www.nabble.com/Cloning-Calendar-proxies-tf4571181.html
> Per the discussion on that thread, I am proposing to modify the generated 
> proxy code to override the clone() method.  This clone() method will do the 
> necessary copying of data from the original object, but then also null out 
> the sm (StateManager) and zero out the field attributes.  This action 
> detaches the cloned object from the StateManager (and associated 
> EntityManager).
> Instead of limiting this action to the Calendar proxy, I am adding the 
> clone() method implementation to all of our proxy objects that we generate.  
> Granted, some of the object types do not directly support the clone() method, 
> but that will be detected when or if anybody attempts to use the clone() 
> method on these types (compiler generated error message).
> I'll be posting a patch shortly and I plan to commit the changes later today 
> (unless there is opposition).
> Thanks,
> Kevin

-- 
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