Hi Evan, On Oct 30, 2007, at 12:35 PM, Evan Ireland wrote:
Kevin, JPA 1.0 section 3.2.3 Synchronization to the Database ... An update to the state of an entity includes both the assignment of a new value to a persistent property or field of the entity as well as the modification of a mutable value of a persistent property or field. If you have to call the setter method again in order for the change to be detected, surely this would not be spec-compliant. Should we report this as a bug?
Yes, please report it as a bug, and include a trivial test case. We can then resolve it on the jira discussion.
I wonder if there is a TCK test for this?One way to handle this kind of thing is to define an OpenJPA flag like "AutoDetectArrayChanges" which has a negative performance impact because it requires OpenJPA to compare the before-image and after- image of all xxx[ ] field values at flush or commit time. If the flag is false, then the only array types that are detected are those in which the field is replaced (even by itself). The default could be spec-compliant (true) or non-spec-compliant. The TCK might have to run with the flag set to slow, depending on whether there even is a TCK test.
Craig
-----Original Message----- From: Kevin Sutter [mailto:[EMAIL PROTECTED] Sent: Wednesday, 31 October 2007 2:38 a.m. To: [email protected] Subject: Re: [jira] Resolved: (OPENJPA-422) Calendar objects contained in a detached Entity still have a "live" StateManagerImpl Evan, On 10/28/07, Evan Ireland <[EMAIL PROTECTED]> wrote:Since you appear to be familiar with the proxying stuff, Iwonder ifyou can say, for persistent attributes of type "byte[]"which cannotbe proxied, but are mutable, how does OpenJPA handle that case?As one big blob of data... :-) If you modify the individual byte array contents, then you will have to re-set the array into your persistence field in order for the change to be detected. OpenJPA also provides the ability to define a customized type plugin which might allow you to define and detect a byte[] modification, but I'm not totally familiar with this aspect to know if it would help your situation or not. Kevin-----Original Message-----From: Kevin Sutter (JIRA) [mailto:[EMAIL PROTECTED] Sent: Sunday, 28 October 2007 9:22 a.m. To: [email protected] Subject: [jira] Resolved: (OPENJPA-422) Calendar objectscontainedin a detached Entity still have a "live" StateManagerImpl [ https://issues.apache.org/jira/browse/OPENJPA-422?page=com.atl assian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kevin Sutter resolved OPENJPA-422. ---------------------------------- Resolution: Fixed Resolved for 1.0.1 and 1.1.0 via svn revision 589207.Calendar objects contained in a detached Entity stillhave a "live"StateManagerImpl------------------------------------------------------------------------------------ Key: OPENJPA-422 URL:https://issues.apache.org/jira/browse/OPENJPA-422Project: OpenJPA Issue Type: Bug Components: kernel Affects Versions: 1.0.0 Reporter: Kevin Sutter Assignee: Kevin Sutter Fix For: 1.0.1, 1.1.0 When Entities are detached, normally the StateManagerImplinstance associated with this Entity is replaced with a DetachedStateManager. Not only with the Entity itself, but also with the proxied attributes (Date, Calendar, Collection, and Map types). But, somehow the Calendar object type wasforgotten in thecode for this processing. So, the Calendar proxy typewas left witha "live" StateManagerImpl instance. If the owning Broker (EntityManager) for this Entity was closed, then the use of this "live" StateManagerImpl would end up with an IllegalStateException. And, even if the owning Broker (EntityManager) was still open, this "live" StateManagerImpl should not have been tracking the statesince theenclosing Entity was detached.A simple one-line update toDetachManager$DetachFieldManager.reproxy() method willnow processthe Calendar proxies as well as the other proxies it was already doing. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
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!
smime.p7s
Description: S/MIME cryptographic signature
