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)) {