You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2010/03/21 23:13:22 UTC
svn commit: r925918 -
/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java
Author: curtisr7
Date: Sun Mar 21 22:13:22 2010
New Revision: 925918
URL: http://svn.apache.org/viewvc?rev=925918&view=rev
Log:
OPENJPA-1545: Only detach StateManagers that aren't already detached.
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java?rev=925918&r1=925917&r2=925918&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java Sun Mar 21 22:13:22 2010
@@ -46,14 +46,16 @@ public class DetachManagerLite {
ClassMetaData cmd = sm.getMetaData();
if (sm.isPersistent() && cmd.isDetachable()) {
PersistenceCapable pc = sm.getPersistenceCapable();
- // Detach proxy fields.
- BitSet loaded = sm.getLoaded();
- for (FieldMetaData fmd : cmd.getProxyFields()) {
- if (loaded.get(fmd.getIndex())) {
- detachProxyField(fmd, pc, sm, fm);
+ if(pc.pcIsDetached() == false){
+ // Detach proxy fields.
+ BitSet loaded = sm.getLoaded();
+ for (FieldMetaData fmd : cmd.getProxyFields()) {
+ if (loaded.get(fmd.getIndex())) {
+ detachProxyField(fmd, pc, sm, fm);
+ }
}
+ pc.pcReplaceStateManager(null);
}
- pc.pcReplaceStateManager(null);
}
}
}