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 2013/03/18 22:45:28 UTC

svn commit: r1458027 - /openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java

Author: curtisr7
Date: Mon Mar 18 21:45:28 2013
New Revision: 1458027

URL: http://svn.apache.org/r1458027
Log:
OPENJPA-2353: Reduce object allocations in DetachManagerLite.

Modified:
    openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java

Modified: openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java?rev=1458027&r1=1458026&r2=1458027&view=diff
==============================================================================
--- openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java (original)
+++ openjpa/branches/2.2.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DetachManagerLite.java Mon Mar 18 21:45:28 2013
@@ -32,9 +32,11 @@ import org.apache.openjpa.util.Proxy;
  */
 public class DetachManagerLite {
     private final boolean _detachProxies;
+    private final TransferFieldManager _tsm;
 
-    public DetachManagerLite(OpenJPAConfiguration conf) {
+    public DetachManagerLite(OpenJPAConfiguration conf) {       
         _detachProxies = conf.getDetachStateInstance().getDetachProxyFields();
+        _tsm = new TransferFieldManager();
     }
 
     /**
@@ -44,7 +46,7 @@ public class DetachManagerLite {
      *            The StateManagers to be detached.
      */
     public void detachAll(Collection<StateManagerImpl> states) {
-        TransferFieldManager fm = new TransferFieldManager();
+        
         for (StateManagerImpl sm : states) {
             ClassMetaData cmd = sm.getMetaData();
             if (sm.isPersistent() && cmd.isDetachable()) {
@@ -54,7 +56,7 @@ public class DetachManagerLite {
                     BitSet loaded = sm.getLoaded();
                     for (FieldMetaData fmd : cmd.getProxyFields()) {
                         if (loaded.get(fmd.getIndex())) {
-                            detachProxyField(fmd, pc, sm, fm);
+                            detachProxyField(fmd, pc, sm, _tsm);
                         }
                     }
                     pc.pcReplaceStateManager(null);