On Thu, 2016-09-22 at 12:49 +0000, Tomek Rekawek wrote:
> 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  is an acceptable solution? If so,
> I’ll create a proper JIRA and merge the code.
>  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.