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

Kevin Sutter updated OPENJPA-396:
---------------------------------

    Attachment: OPENJPA-396.patch

Proposed patch for OpenJPA-396.  It was built against the 1.0.x branch, but 
also seems to work with the trunk (1.1.0).

When testing this patch, I found that TestProxyManager had a couple of problems 
that needed correcting.  After these changes were made, I had to re-factor a 
few of the "assert" methods so that we were testing for proper equality when 
copying vs cloning.  That's why the patch for TestProxyManager looks larger 
than expected.

I plan to commit these changes later today unless concerns are raised with the 
patch.

Thanks,
Kevin

> 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