I’ve looked into this issue. I think it’s caused by the fact that the squeeze() 
method sometimes doesn’t wrap the passed node state with MemoryNodeStates, but 
return it as-is. I tried to wrap the state unconditionally in the initializers 
and it fixed the issue.

Michael, Robert - do you think [1] is an acceptable solution? If so, I’ll 
create a proper JIRA and merge the code.


[1] https://github.com/trekawek/jackrabbit-oak/commit/cf3d73

Tomek Rękawek | Adobe Research | www.adobe.com

> On 9 Sep 2016, at 17:09, Robert Munteanu <romb...@apache.org> wrote:
> Hi,
> I'd like branch my 'Are all NodeBuilders required to inherit from the
> MemoryNodeBuilder?' thread to put the focus back on the root issue.
> Some repository/workspace initializers unconditionally wrap a passed
> NodeState with a MemoryNodeStore, given that up till now all NodeState
> instances extend the MemoryNodeState. [1][2][3]
> However, once we get a NodeState that does not inherit from a
> MemoryNodeState it all breaks down - like in my multiplexing POC.
> I currently have a hack^H^H^H^H isolated way of exposing a
> MemoryNodeBuilder from a MultiplexingNodeBuilder, but I'd like a more
> elegant approach.
> I wonder if the issue is that the initializers don't get access to the
> 'original' NodeStore and we can extend the API to make it available? Or
> maybe there are other ways of addressing it that I don't see due to my
> limited exposes to Oak's core.
> Thanks,
> Robert
> [1]: https://github.com/apache/jackrabbit-oak/blob/1fdae3a77e4172cf5716
> 6ffe77eb35a4bd93c76b/oak-
> core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/write/Ini
> tialContent.java#L118-L119
> [2]: https://github.com/apache/jackrabbit-oak/blob/1fdae3a77e4172cf5716
> 6ffe77eb35a4bd93c76b/oak-
> core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitiali
> zer.java#L94-L95
> [3]: https://github.com/apache/jackrabbit-oak/blob/1fdae3a77e4172cf5716
> 6ffe77eb35a4bd93c76b/oak-
> core/src/main/java/org/apache/jackrabbit/oak/security/privilege/Privile
> geInitializer.java#L58-L59

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to