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/19 18:55:17 UTC

svn commit: r1458432 - /openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java

Author: curtisr7
Date: Tue Mar 19 17:55:17 2013
New Revision: 1458432

URL: http://svn.apache.org/r1458432
Log:
OPENJPA-2353: Fix bug in BrokerImpl.initializeOperatingSet() initialization after deserialization.

Modified:
    openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java

Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java?rev=1458432&r1=1458431&r2=1458432&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java Tue Mar 19 17:55:17 2013
@@ -196,8 +196,8 @@ public class BrokerImpl implements Broke
 
     // these are used for method-internal state only
     private transient Map<Object, StateManagerImpl> _loading = null;
-    private transient Set<Object> _operating = MapBackedSet.decorate(new IdentityHashMap<Object, Object>());;
-    private transient boolean _operatingDirty = false;
+    private transient Set<Object> _operating = null;
+    private transient boolean _operatingDirty = true;
 
     private Set<Class<?>> _persistedClss = null;
     private Set<Class<?>> _updatedClss = null;
@@ -342,7 +342,10 @@ public class BrokerImpl implements Broke
         _log = _conf.getLog(OpenJPAConfiguration.LOG_RUNTIME);
         if (!fromDeserialization)
             _cache = new ManagedCache(this);
+        // Force creation of a new operating set
+        _operatingDirty = true;
         initializeOperatingSet();
+        
         _connRetainMode = connMode;
         _managed = managed;
         if (managed)
@@ -4790,6 +4793,10 @@ public class BrokerImpl implements Broke
         // re-initialize the lock if needed.
         setMultithreaded(_multithreaded);
 
+        // force recreation of set
+        _operatingDirty = true;
+        initializeOperatingSet();
+
         if (isActive() && _runtime instanceof LocalManagedRuntime)
             ((LocalManagedRuntime) _runtime).begin();
     }
@@ -5243,6 +5250,13 @@ public class BrokerImpl implements Broke
     
     private boolean operatingAdd(Object o){
         _operatingDirty = true;
+        try {
         return _operating.add(o);
+        }catch(NullPointerException npe){
+            System.out.print(false);
+        }
+        
+        return false;
     }
+    
 }