Hi, 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. Regards, Tomek [1] https://github.com/trekawek/jackrabbit-oak/commit/cf3d73 -- Tomek Rękawek | Adobe Research | www.adobe.com [email protected] > On 9 Sep 2016, at 17:09, Robert Munteanu <[email protected]> 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
smime.p7s
Description: S/MIME cryptographic signature
