Author: aadamchik Date: Tue Dec 12 06:09:01 2006 New Revision: 486152 URL: http://svn.apache.org/viewvc?view=rev&rev=486152 Log: missing synchronization of the Graphmanager methods ... can result in race conditions
Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java?view=diff&rev=486152&r1=486151&r2=486152 ============================================================================== --- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java (original) +++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/access/ObjectStore.java Tue Dec 12 06:09:01 2006 @@ -747,7 +747,7 @@ changes.remove(nodeId); registerNode(nodeId, object); nodeCreated(nodeId); - if(dataObject != null) { + if (dataObject != null) { delegate.finishedProcessDelete(dataObject); } } @@ -973,14 +973,14 @@ /** * @since 1.2 */ - public void registerNode(Object nodeId, Object nodeObject) { + public synchronized void registerNode(Object nodeId, Object nodeObject) { objectMap.put(nodeId, nodeObject); } /** * @since 1.2 */ - public Object unregisterNode(Object nodeId) { + public synchronized Object unregisterNode(Object nodeId) { Object object = getNode(nodeId); if (object != null) { objectsUnregistered(Collections.singleton(object));