[
https://issues.apache.org/jira/browse/OAK-11845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18012568#comment-18012568
]
Marcel Reutegger commented on OAK-11845:
----------------------------------------
While I have a hard time finding it explicitly written in a contract, I'm quite
certain NodeBuilder is not considered thread-safe. E.g. take MemoryNodeBuilder
which is the base class for both SegmentNodeBuilder and DocumentNodeBuilder.
Internally it uses MutableNodeState to keep track of the builder state. Maps in
MutableNodeState are not thread-safe.
I think making SecureNodeBuilder thread-safe will just treat a symptom, but not
solve the actual problem. The implementation is supposed to synchronize access
to NodeBuilder instances when a JCR Session is accessed concurrently by
multiple threads.
https://jackrabbit.apache.org/oak/docs/dos_and_donts.html#anti-pattern-concurrent-session-access
> Make SecureNodeBuilder thread safe
> ----------------------------------
>
> Key: OAK-11845
> URL: https://issues.apache.org/jira/browse/OAK-11845
> Project: Jackrabbit Oak
> Issue Type: Technical task
> Components: core
> Reporter: Manfred Baedke
> Assignee: Manfred Baedke
> Priority: Major
>
> The member variable treePermission in particular may currently been set to
> null by a concurrent thread calling the method #baseChanged() during the
> execution of #getTreePermission().
--
This message was sent by Atlassian Jira
(v8.20.10#820010)