On Thu, 2016-09-22 at 12:49 +0000, Tomek Rekawek wrote: > 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 >
That looks correct to me, although I may be missing some finer points. Only thing I'm wondering is whether there is a scenario where performance would be greatly impacted since the NodeState contains lots of entries _and_ it's not a MemoryNodeState, so the newly added wrap method would basically copy everything. Upgrades maybe? Robert
