This is an automated email from the ASF dual-hosted git repository.

baedke pushed a commit to branch issue/oak-10784
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/issue/oak-10784 by this push:
     new 460d470132 OAK-10784: 
o.a.j.o.plugins.migration.version.VersionableEditor should create the version 
storage node, if needed
460d470132 is described below

commit 460d47013275c872ef2c24024dfb8330412b6be0
Author: Manfred Baedke <manfred.bae...@gmail.com>
AuthorDate: Fri May 3 13:29:08 2024 +0200

    OAK-10784: o.a.j.o.plugins.migration.version.VersionableEditor should 
create the version storage node, if needed
    
    Implemented; improved logging.
---
 .../oak/plugins/migration/version/VersionableEditor.java         | 9 +++++----
 .../plugins/migration/version/VersionablePropertiesEditor.java   | 4 ++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
index 5a84a04caa..e9f4172068 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionableEditor.java
@@ -37,6 +37,7 @@ import static 
org.apache.jackrabbit.guava.common.collect.ImmutableSet.of;
 import static org.apache.jackrabbit.JcrConstants.JCR_UUID;
 import static org.apache.jackrabbit.JcrConstants.MIX_REFERENCEABLE;
 import static org.apache.jackrabbit.JcrConstants.MIX_VERSIONABLE;
+import static 
org.apache.jackrabbit.oak.plugins.migration.version.VersionHistoryUtil.createVersionStorage;
 import static 
org.apache.jackrabbit.oak.spi.version.VersionConstants.MIX_REP_VERSIONABLE_PATHS;
 import static 
org.apache.jackrabbit.oak.plugins.migration.version.VersionHistoryUtil.addMixin;
 import static 
org.apache.jackrabbit.oak.plugins.migration.version.VersionHistoryUtil.getVersionHistoryBuilder;
@@ -79,7 +80,7 @@ public class VersionableEditor extends DefaultEditor {
 
     private VersionableEditor(Provider provider, NodeBuilder rootBuilder) {
         this.rootBuilder = rootBuilder;
-        this.versionStorage = getVersionStorage(rootBuilder);
+        this.versionStorage = createVersionStorage(rootBuilder);
         this.vMgr = new ReadWriteVersionManager(versionStorage, rootBuilder);
 
         this.provider = provider;
@@ -140,8 +141,8 @@ public class VersionableEditor extends DefaultEditor {
                 NodeBuilder versionableBuilder = getNodeBuilder(rootBuilder, 
this.path);
                 removeVersionProperties(versionableBuilder, isReferenceable);
                 if (isVersionable.test(versionableBuilder.getNodeState())) {
-                    logger.warn("Node {} is still versionable. Creating 
initial version history.", path);
-                    createEmptyHistory(versionableBuilder);
+                    logger.warn("Node {} is still versionable due to node type 
constraints. Creating initial version history.", path);
+                    createInitialHistory(versionableBuilder);
                 }
             }
         }
@@ -169,7 +170,7 @@ public class VersionableEditor extends DefaultEditor {
         return getVersionHistoryBuilder(versionStorage, 
versionableUuid).exists();
     }
 
-    private void createEmptyHistory(NodeBuilder versionable) throws 
CommitFailedException {
+    private void createInitialHistory(NodeBuilder versionable) throws 
CommitFailedException {
         vMgr.getOrCreateVersionHistory(versionable, 
Collections.<String,Object>emptyMap());
     }
 
diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
index 4016dfb810..257852116e 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/version/VersionablePropertiesEditor.java
@@ -49,8 +49,8 @@ import static org.apache.jackrabbit.oak.api.Type.NAMES;
 import static org.apache.jackrabbit.oak.api.Type.REFERENCE;
 import static org.apache.jackrabbit.oak.api.Type.REFERENCES;
 import static 
org.apache.jackrabbit.oak.plugins.memory.MultiGenericPropertyState.nameProperty;
+import static 
org.apache.jackrabbit.oak.plugins.migration.version.VersionHistoryUtil.createVersionStorage;
 import static 
org.apache.jackrabbit.oak.plugins.migration.version.VersionHistoryUtil.getVersionHistoryNodeState;
-import static 
org.apache.jackrabbit.oak.plugins.migration.version.VersionHistoryUtil.getVersionStorage;
 
 /**
  * The VersionablePropertiesEditor adds missing versionable properties.
@@ -76,7 +76,7 @@ public final class VersionablePropertiesEditor extends 
DefaultEditor {
     private VersionablePropertiesEditor(NodeBuilder rootBuilder) {
         this.builder = rootBuilder;
         this.rootBuilder = rootBuilder;
-        this.versionStorage = getVersionStorage(rootBuilder);
+        this.versionStorage = createVersionStorage(rootBuilder);
         this.isVersionable = new TypePredicate(rootBuilder.getNodeState(), 
MIX_VERSIONABLE);
         this.isNtVersion = new TypePredicate(rootBuilder.getNodeState(), 
NT_VERSION);
         this.isFrozenNode = new TypePredicate(rootBuilder.getNodeState(), 
NT_FROZENNODE);

Reply via email to