Author: tomekr
Date: Mon Jun 19 14:23:23 2017
New Revision: 1799213

URL: http://svn.apache.org/viewvc?rev=1799213&view=rev
Log:
OAK-6360: Failed to retrieve previously indexed checkpoint in composite node 
store

Don't use the resolve-by-name mechanism for releasing checkpoints
from the partial stores.

Modified:
    
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java

Modified: 
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java?rev=1799213&r1=1799212&r2=1799213&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
 Mon Jun 19 14:23:23 2017
@@ -291,7 +291,7 @@ public class CompositeNodeStore implemen
         nodeStates.put(ctx.getGlobalStore(), 
ctx.getGlobalStore().getNodeStore().retrieve(checkpoint));
         for (MountedNodeStore nodeStore : ctx.getNonDefaultStores()) {
             NodeState nodeState = null;
-            String partialCheckpoint = getPartialCheckpointName(nodeStore, 
checkpoint, props);
+            String partialCheckpoint = getPartialCheckpointName(nodeStore, 
checkpoint, props, true);
             if (partialCheckpoint == null && 
nodeStore.getMount().isReadOnly()) {
                 nodeState = nodeStore.getNodeStore().getRoot();
             } else if (partialCheckpoint != null) {
@@ -322,7 +322,7 @@ public class CompositeNodeStore implemen
                 continue;
             }
             boolean released = false;
-            String partialCheckpoint = getPartialCheckpointName(nodeStore, 
checkpoint, props);
+            String partialCheckpoint = getPartialCheckpointName(nodeStore, 
checkpoint, props, false);
             if (partialCheckpoint != null) {
                 released = nodeStore.getNodeStore().release(partialCheckpoint);
             }
@@ -331,7 +331,7 @@ public class CompositeNodeStore implemen
         return result;
     }
 
-    private String getPartialCheckpointName(MountedNodeStore nodeStore, String 
globalCheckpoint, Map<String, String> globalCheckpointProperties) {
+    private String getPartialCheckpointName(MountedNodeStore nodeStore, String 
globalCheckpoint, Map<String, String> globalCheckpointProperties, boolean 
resolveByName) {
         Set<String> validCheckpointNames = 
ImmutableSet.copyOf(nodeStore.getNodeStore().checkpoints());
         String result = 
globalCheckpointProperties.get(CHECKPOINT_METADATA_MOUNT + 
nodeStore.getMount().getName());
         if (result != null && validCheckpointNames.contains(result)) {


Reply via email to