You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by js...@apache.org on 2016/02/29 15:25:05 UTC

svn commit: r1732906 - in /jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version: VersionHistoryUtil.java VersionableEditor.java

Author: jsedding
Date: Mon Feb 29 14:25:05 2016
New Revision: 1732906

URL: http://svn.apache.org/viewvc?rev=1732906&view=rev
Log:
OAK-3844 - Better support for versionable nodes without version histories

- non functional refactoring + docs
- original patch from Tomek Rękawek

Modified:
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionHistoryUtil.java
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionableEditor.java

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionHistoryUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionHistoryUtil.java?rev=1732906&r1=1732905&r2=1732906&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionHistoryUtil.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionHistoryUtil.java Mon Feb 29 14:25:05 2016
@@ -38,6 +38,14 @@ public class VersionHistoryUtil {
                 singleton(versionableUuid)));
     }
 
+    /**
+     * Constructs the version history path based on the versionable's UUID.
+     *
+     * @param root The root NodeState below which to look for the version.
+     * @param versionableUuid The String representation of the versionable's UUID.
+     * @return The NodeState corresponding to the version history, or {@code null}
+     *         if it does not exist.
+     */
     static NodeState getVersionHistoryNodeState(NodeState root, String versionableUuid) {
         NodeState historyParent = root;
         for (String segment : getVersionHistoryPathSegments(versionableUuid)) {

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionableEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionableEditor.java?rev=1732906&r1=1732905&r2=1732906&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionableEditor.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/version/VersionableEditor.java Mon Feb 29 14:25:05 2016
@@ -26,6 +26,8 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.Set;
 
@@ -113,20 +115,17 @@ public class VersionableEditor extends D
         final VersionCopyConfiguration c = provider.config;
         if (isVersionable.apply(after)) {
             final String versionableUuid = getProperty(after, JCR_UUID, Type.STRING);
-            boolean versionHistoryExists = isVersionHistoryExists(versionableUuid);
             if (c.isCopyVersions() && c.skipOrphanedVersionsCopy()) {
-                versionHistoryExists = copyVersionHistory(after);
+                copyVersionHistory(after);
             } else if (c.isCopyVersions() && !c.skipOrphanedVersionsCopy()) {
                 // all version histories have been copied, but maybe the date
                 // range for orphaned entries is narrower
                 if (c.getOrphanedMinDate().after(c.getVersionsMinDate())) {
-                    versionHistoryExists = copyVersionHistory(after);
+                    copyVersionHistory(after);
                 }
-            } else {
-                versionHistoryExists = false;
             }
 
-            if (versionHistoryExists) {
+            if (isVersionHistoryExists(versionableUuid)) {
                 setVersionablePath(versionableUuid);
             } else {
                 removeVersionProperties(getNodeBuilder(rootBuilder, this.path));