You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by to...@apache.org on 2017/07/25 10:24:45 UTC

svn commit: r1802912 - in /jackrabbit/oak/trunk/oak-store-composite/src: main/java/org/apache/jackrabbit/oak/composite/ test/java/org/apache/jackrabbit/oak/composite/

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