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));


Reply via email to