Author: mreutegg
Date: Tue Aug 25 12:17:50 2015
New Revision: 1697660

URL: http://svn.apache.org/r1697660
Log:
OAK-3249: Some version copy settings conflicts with the earlyShutdown

Applied patch provided by Tomek Rękawek.

Modified:
    
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
    
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java?rev=1697660&r1=1697659&r2=1697660&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
 Tue Aug 25 12:17:50 2015
@@ -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

Modified: 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java?rev=1697660&r1=1697659&r2=1697660&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/CopyVersionHistoryTest.java
 Tue Aug 25 12:17:50 2015
@@ -225,6 +225,7 @@ public class CopyVersionHistoryTest exte
         try {
             final RepositoryUpgrade upgrade = new 
RepositoryUpgrade(sourceContext, targetNodeStore);
             setup.setup(upgrade.versionCopyConfiguration);
+            upgrade.setEarlyShutdown(true);
             upgrade.copy(null);
         } finally {
             sourceContext.getRepository().shutdown();


Reply via email to