You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2011/11/07 18:31:07 UTC

svn commit: r1198827 - /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java

Author: reschke
Date: Mon Nov  7 17:31:06 2011
New Revision: 1198827

URL: http://svn.apache.org/viewvc?rev=1198827&view=rev
Log:
JCR-3139: missing sync in InternalVersionManagerImpl.externalUpdate can cause ConcurrentModificationException

added synchronization

Modified:
    jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java?rev=1198827&r1=1198826&r2=1198827&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionManagerImpl.java Mon Nov  7 17:31:06 2011
@@ -645,9 +645,12 @@ public class InternalVersionManagerImpl 
 
         Collection<InternalVersionItem> items =
             new ArrayList<InternalVersionItem>();
-        for (Map.Entry<ItemId, InternalVersionItem> entry : versionItems.entrySet()) {
-            if (changes.has(entry.getKey())) {
-                items.add(entry.getValue());
+        synchronized (versionItems) {
+            for (Map.Entry<ItemId, InternalVersionItem> entry : versionItems
+                    .entrySet()) {
+                if (changes.has(entry.getKey())) {
+                    items.add(entry.getValue());
+                }
             }
         }
         itemsUpdated(items);