diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java index 68da77c..50afcd4 100644 --- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java +++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java @@ -462,7 +462,7 @@ public class RepositoryUpgrade { createIndexEditorProvider() ))); - target.merge(builder, new LoggingCompositeHook(hooks, source, earlyShutdown), CommitInfo.EMPTY); + target.merge(builder, new LoggingCompositeHook(hooks, source, overrideEarlyShutdown()), CommitInfo.EMPTY); logger.info("Processing commit hooks completed in {}s ({})", watch.elapsed(TimeUnit.SECONDS), watch); logger.debug("Repository upgrade completed."); } catch (Exception e) { @@ -470,6 +470,24 @@ public class RepositoryUpgrade { } } + private boolean overrideEarlyShutdown() { + if (earlyShutdown == false) { + return false; + } + + final VersionCopyConfiguration c = this.versionCopyConfiguration; + if (c.isCopyVersions() && c.skipOrphanedVersionsCopy()) { + logger.info("Overriding early shutdown to false because of the copy versions settings"); + return false; + } + if (c.isCopyVersions() && !c.skipOrphanedVersionsCopy() + && c.getOrphanedMinDate().after(c.getVersionsMinDate())) { + logger.info("Overriding early shutdown to false because of the copy versions settings"); + return false; + } + return true; + } + private static EditorProvider createTypeEditorProvider() { return new EditorProvider() { @Override diff --git a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java index 6b8066d..c60d287 100644 --- a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java +++ b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java @@ -238,6 +238,7 @@ public class CopyVersionHistoryTest extends AbstractRepositoryUpgradeTest { try { final RepositoryUpgrade upgrade = new RepositoryUpgrade(sourceContext, targetNodeStore); setup.setup(upgrade); + upgrade.setEarlyShutdown(true); upgrade.copy(null); } finally { sourceContext.getRepository().shutdown();