You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2017/03/15 13:00:36 UTC

svn commit: r1787043 - in /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version: InternalVersionHistoryImpl.java InternalVersionImpl.java

Author: mreutegg
Date: Wed Mar 15 13:00:36 2017
New Revision: 1787043

URL: http://svn.apache.org/viewvc?rev=1787043&view=rev
Log:
JCR-4121: ConcurrentModificationException in InternalVersionHistoryImpl.fixLegacy()

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

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java?rev=1787043&r1=1787042&r2=1787043&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionHistoryImpl.java Wed Mar 15 13:00:36 2017
@@ -167,7 +167,7 @@ class InternalVersionHistoryImpl extends
     // fix legacy
     private void fixLegacy() throws RepositoryException {
         if (rootVersion.getSuccessors().isEmpty()) {
-            for (Name versionName : nameCache.keySet()) {
+            for (Name versionName : getVersionNames()) {
                 InternalVersionImpl v = createVersionInstance(versionName);
                 v.legacyResolveSuccessors();
             }

Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java?rev=1787043&r1=1787042&r2=1787043&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/InternalVersionImpl.java Wed Mar 15 13:00:36 2017
@@ -441,7 +441,10 @@ class InternalVersionImpl extends Intern
             for (InternalValue value : values) {
                 InternalVersionImpl v = (InternalVersionImpl)
                         versionHistory.getVersion(value.getNodeId());
-                v.internalAddSuccessor(this, false);
+                // version may be null if history is broken
+                if (v != null) {
+                    v.internalAddSuccessor(this, false);
+                }
             }
         }
     }