Author: tomekr
Date: Wed Nov 28 13:39:13 2018
New Revision: 1847638
URL: http://svn.apache.org/viewvc?rev=1847638&view=rev
Log:
OAK-7923: CompositeNodeBuilder#getPath() fails when it wraps a ReadOnlyBuilder
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/CompositeNodeState.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=1847638&r1=1847637&r2=1847638&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
Wed Nov 28 13:39:13 2018
@@ -47,9 +47,12 @@ class CompositeNodeBuilder implements No
private final NodeMap<NodeBuilder> nodeBuilders;
- CompositeNodeBuilder(NodeMap<NodeBuilder> nodeBuilders, CompositionContext
ctx) {
+ private final String path;
+
+ CompositeNodeBuilder(NodeMap<NodeBuilder> nodeBuilders, CompositionContext
ctx, String path) {
this.ctx = ctx;
this.nodeBuilders = nodeBuilders;
+ this.path = path;
ctx.getNodeBuilderMonitor().onCreateNodeObject(getPath());
}
@@ -216,7 +219,7 @@ class CompositeNodeBuilder implements No
ctx.getNodeBuilderMonitor().onSwitchNodeToNative(mns.getMount());
return nodeBuilders.get(mns).getChildNode(name);
}
- return new CompositeNodeBuilder(nodeBuilders.lazyApply((mns, b) ->
b.getChildNode(name)), ctx);
+ return new CompositeNodeBuilder(nodeBuilders.lazyApply((mns, b) ->
b.getChildNode(name)), ctx, childPath);
}
@Override
@@ -243,7 +246,7 @@ class CompositeNodeBuilder implements No
if (!ctx.shouldBeComposite(childPath)) {
return childBuilder;
}
- return new CompositeNodeBuilder(nodeBuilders.lazyApply((mns, b) ->
b.getChildNode(name)).replaceNode(childStore, childBuilder), ctx);
+ return new CompositeNodeBuilder(nodeBuilders.lazyApply((mns, b) ->
b.getChildNode(name)).replaceNode(childStore, childBuilder), ctx, childPath);
}
@Override
@@ -266,7 +269,7 @@ class CompositeNodeBuilder implements No
}
String getPath() {
- return ((MemoryNodeBuilder) getWrappedNodeBuilder()).getPath();
+ return path;
}
private boolean belongsToStore(MountedNodeStore mns, String childName) {
Modified:
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeState.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeState.java?rev=1847638&r1=1847637&r2=1847638&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeState.java
(original)
+++
jackrabbit/oak/trunk/oak-store-composite/src/main/java/org/apache/jackrabbit/oak/composite/CompositeNodeState.java
Wed Nov 28 13:39:13 2018
@@ -185,7 +185,7 @@ class CompositeNodeState extends Abstrac
} else {
return n.builder();
}
- }), ctx);
+ }), ctx, path);
}
private NodeState getWrappedNodeState() {