You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2010/11/12 14:25:55 UTC
svn commit: r1034395 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
Author: stefan
Date: Fri Nov 12 13:25:54 2010
New Revision: 1034395
URL: http://svn.apache.org/viewvc?rev=1034395&view=rev
Log:
JCR-2807: ConcurrentModificationException in SessionItemStateManager.getIdOfRootTransientNodeState()
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java?rev=1034395&r1=1034394&r2=1034395&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SessionItemStateManager.java Fri Nov 12 13:25:54 2010
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.LinkedList;
import java.util.Map;
@@ -477,7 +478,8 @@ public class SessionItemStateManager
}
// remove any descendant candidates
boolean skip = false;
- for (NodeId id : candidateIds) {
+ for (Iterator<NodeId> it = candidateIds.iterator(); it.hasNext();) {
+ NodeId id = it.next();
if (nodeId.equals(id) || hierMgr.isAncestor(id, nodeId)) {
// already a candidate or a descendant thereof
// => skip
@@ -486,7 +488,7 @@ public class SessionItemStateManager
}
if (hierMgr.isAncestor(nodeId, id)) {
// candidate is a descendant => remove
- candidateIds.remove(id);
+ it.remove();
}
}
if (!skip) {