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() {


Reply via email to