Author: jrbauer
Date: Mon Jul  6 19:06:19 2009
New Revision: 791568

URL: http://svn.apache.org/viewvc?rev=791568&view=rev
Log:
OPENJPA-1155 Committing code contributed by Dianne Richards.  This update 
ensures that all entities, especially those loaded during detachment get 
cascaded during detach.

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=791568&r1=791567&r2=791568&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
 Mon Jul  6 19:06:19 2009
@@ -3321,8 +3321,17 @@
 
         if (call == null)
             call = _call;
-        new DetachManager(this, true, call).detachAll
-            (new ManagedObjectCollection(states));
+        // Make sure ALL entities are detached, even new ones that are loaded
+        // during the detach processing
+        boolean origCascade = _compat.getCascadeWithDetach();
+        _compat.setCascadeWithDetach(true);        
+        try {
+            new DetachManager(this, true, call)
+                .detachAll(new ManagedObjectCollection(states));
+        } 
+        finally {
+            _compat.setCascadeWithDetach(origCascade);
+        }
     }
 
     public Object attach(Object obj, boolean copyNew, OpCallbacks call) {


Reply via email to