You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2009/11/25 07:49:48 UTC

svn commit: r883993 - /cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java

Author: andrey
Date: Wed Nov 25 06:49:45 2009
New Revision: 883993

URL: http://svn.apache.org/viewvc?rev=883993&view=rev
Log:
trying to fix error on java5

Modified:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java?rev=883993&r1=883992&r2=883993&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/CayenneContextGraphManager.java Wed Nov 25 06:49:45 2009
@@ -41,6 +41,7 @@
 import org.apache.cayenne.reflect.ClassDescriptor;
 import org.apache.cayenne.reflect.PropertyException;
 import org.apache.cayenne.reflect.ToManyMapProperty;
+import org.apache.cayenne.util.PersistentObjectMap;
 
 /**
  * A GraphMap extension that works together with ObjectContext to track persistent object
@@ -205,12 +206,16 @@
         while (it.hasNext()) {
             Map.Entry<?, ?> e = (Map.Entry<?, ?>) it.next();
             if (e.getValue() == target) {
+                //this remove does not trigger event in PersistentObjectMap
                 it.remove();
                 break;
             }
         }
 
-        map.put(newKey, target);
+        //TODO: (andrey, 25/11/09 - this is a hack to prevent event triggering 
+        // (and concurrent exceptions)
+        //should find a way to get rid of type casting
+        ((PersistentObjectMap) map).putDirectly(newKey, target);
     }
 
     void graphFlushed() {