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 <[email protected]>
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);