Compare also with https://jackrabbit.apache.org/oak/docs/dos_and_donts.html#Avoid_or_minimize_conflicts Konrad
> On 9. Dec 2025, at 14:32, Jörg Hoh <[email protected]> wrote: > > Hi Raffaele, > > Oak uses the MVCC pattern, in Jackrabbit 2.x this does not exist. For that > any write conflicts must be resolved, and if they cannot be auto-resolved, > they will throw an exception (like in your case). > > In my experience the best approach is to clearly split the > responsibilities, that you don't have concurrent writes on the same nodes. > The second best is to design the content structure in a way, that you don't > have frequent conflicting writes. And the last option is to implement a > retry... > > Jörg > > > > Am Di., 9. Dez. 2025 um 12:59 Uhr schrieb Raffaele Gambelli via oak-dev < > [email protected]>: > >> Hello everyone, >> With the aim of replacing Jackrabbit with Oak, I am continuing with the >> checks. >> While performing load tests to simulate concurrency, I encountered this >> exception: >> Caused by: javax.jcr.InvalidItemStateException: OakState0001: Unresolved >> conflicts in /containers/Cartella Protocolli Incompleti/2025/12/9 >> at >> org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:238) >> at >> org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:213) >> at >> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:745) >> at >> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:559) >> at >> org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:460) >> at >> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:306) >> at >> org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:457) >> at >> it.cbt.wr.core.WorkSessionApplicationImpl.sessionSave(WorkSessionApplicationImpl.java:3808) >> at >> it.cbt.wr.core.WorkSessionApplicationImpl.save(WorkSessionApplicationImpl.java:1341) >> ... 180 more >> Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: >> OakState0001: Unresolved conflicts in /containers/Cartella Protocolli >> Incompleti/2025/12/9 >> at >> org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.failOnMergeConflict(ConflictValidator.java:113) >> at >> org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.propertyAdded(ConflictValidator.java:82) >> at >> org.apache.jackrabbit.oak.spi.commit.CompositeEditor.propertyAdded(CompositeEditor.java:76) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.propertyAdded(EditorDiff.java:81) >> at >> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:377) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) >> at >> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:399) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) >> at >> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:399) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) >> at >> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:399) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) >> at >> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:399) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) >> at >> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:399) >> at >> org.apache.jackrabbit.oak.plugins.document.ModifiedDocumentNodeState.compareAgainstBaseState(ModifiedDocumentNodeState.java:132) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:51) >> at >> org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit(EditorHook.java:54) >> at >> org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) >> at >> org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) >> at >> org.apache.jackrabbit.oak.plugins.document.TimingHook.processCommit(TimingHook.java:59) >> at >> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:548) >> at >> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:203) >> at >> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:122) >> at >> org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:170) >> at >> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:2155) >> at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:261) >> at >> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:402) >> at >> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:557) >> ... 185 more >> >> >> In that specific case, I had three users creating the same node, within >> the same path and at approximately the same time. >> In my code, all I do is save the session. >> I would like to point out that the same code does not cause this type of >> problem with Jackrabbit. >> Are there any specific recommendations for managing competition in oak? >> Thanks for your help >> >> >> Cordiali saluti / Best regards, >> >> Raffaele Gambelli >> Application Architect >> E [email protected]<mailto:[email protected]> >> M +39 3371641888 >> [ >> https://images.eu.signature365.com/b2uknhefs98nwdub/img_USamABop1MkXu35s/v114.jpg >> ] >> [CEGEKA] >> Via Ettore Cristoni, 84 >> IT-40033 Bologna (IT), Italy >> T +39 02 2544271 >> WWW.CEGEKA.COM<https://www.cegeka.com> >> >> >> >> >> > > -- > https://cqdump.joerghoh.de
