Author: tomekr
Date: Tue Jul 25 10:24:45 2017
New Revision: 1802912
URL: http://svn.apache.org/viewvc?rev=1802912&view=rev
Log:
OAK-6486: NPE in CompositeNodeStore
Don't use lazy loading for the CompositeNodeBuilder#getBaseState()
Modified:
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeBuilder.java
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeStore.java
jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
Modified:
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeBuilder.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeBuilder.java?rev=1802912&r1=1802911&r2=1802912&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeBuilder.java
(original)
+++
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeBuilder.java
Tue Jul 25 10:24:45 2017
@@ -84,7 +84,7 @@ class CompositeNodeBuilder implements No
@Override
public CompositeNodeState getNodeState() {
- return new CompositeNodeState(path, new
IdentityHashMap<>(buildersToNodeStates(nodeBuilders)), ctx);
+ return new CompositeNodeState(path,
buildersToNodeStates(nodeBuilders), ctx);
}
@Override
@@ -93,7 +93,7 @@ class CompositeNodeBuilder implements No
}
private static Map<MountedNodeStore, NodeState>
buildersToNodeStates(Map<MountedNodeStore, NodeBuilder> builders) {
- return transformValues(builders, new Function<NodeBuilder,
NodeState>() {
+ return new IdentityHashMap<>(transformValues(builders, new
Function<NodeBuilder, NodeState>() {
@Override
public NodeState apply(NodeBuilder input) {
if (input.exists()) {
@@ -102,7 +102,7 @@ class CompositeNodeBuilder implements No
return MISSING_NODE;
}
}
- });
+ }));
}
private static Map<MountedNodeStore, NodeState>
buildersToBaseStates(Map<MountedNodeStore, NodeBuilder> builders) {
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=1802912&r1=1802911&r2=1802912&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
Tue Jul 25 10:24:45 2017
@@ -324,7 +324,7 @@ public class CompositeNodeStore implemen
LOG.warn("Checkpoint {} doesn't exist. Debug info:\n{}",
checkpoint, checkpointDebugInfo());
return null;
}
- return new CompositeNodeState("/", nodeStates, ctx);
+ return ctx.createRootNodeState(nodeStates);
}
@Override
Modified:
jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java?rev=1802912&r1=1802911&r2=1802912&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
(original)
+++
jackrabbit/oak/trunk/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java
Tue Jul 25 10:24:45 2017
@@ -169,7 +169,7 @@ public class CompositeChildrenCountTest
}
public CompositeNodeState getNodeState() {
- return new CompositeNodeState("/", rootStates, ctx);
+ return ctx.createRootNodeState(rootStates);
}
public CompositeNodeStoreBuilder clear() {