You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Christian Schneider (Jira)" <ji...@apache.org> on 2025/11/27 02:31:00 UTC

[jira] [Created] (OAK-12017) CommitFailedException thrown by EditorHook does not contain path to node

Christian Schneider created OAK-12017:
-----------------------------------------

             Summary: CommitFailedException thrown by EditorHook does not contain path to node
                 Key: OAK-12017
                 URL: https://issues.apache.org/jira/browse/OAK-12017
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: api
            Reporter: Christian Schneider


While applying a content package we get this exception.
The problem is that this gives no indication to the path of the node that caused the exception. This makes it very hard for customers to fix the problem.

The exception is thrown in org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit. In this method the path is known and should be added to the exception. This could be done by wrapping the exception or by replacing it.
{noformat}
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakVersion0001: Cannot change property cq:lastModified on checked in node
    at org.apache.jackrabbit.oak.plugins.version.VersionEditor.throwCheckedIn(VersionEditor.java:309)
    at org.apache.jackrabbit.oak.plugins.version.VersionEditor.propertyChanged(VersionEditor.java:145)
    at org.apache.jackrabbit.oak.spi.commit.VisibleEditor.propertyChanged(VisibleEditor.java:73)
    at org.apache.jackrabbit.oak.spi.commit.EditorDiff.propertyChanged(EditorDiff.java:92)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareProperties(SegmentNodeState.java:662)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:556)
    at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:517)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:649)
    at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
    at org.apache.jackrabbit.oak.segment.MapRecord$3.childNodeChanged(MapRecord.java:430)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:517)
    at org.apache.jackrabbit.oak.segment.MapRecord.compareBranch(MapRecord.java:595)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:496)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:420)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:649)
    at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:649)
    at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:649)
    at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
    at org.apache.jackrabbit.oak.composite.CompositeNodeState$WrappingDiff.childNodeChanged(CompositeNodeState.java:310)
    at org.apache.jackrabbit.oak.composite.CompositeNodeState$ChildrenDiffFilter.childNodeChanged(CompositeNodeState.java:257)
    at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444)
    at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:649)
    at org.apache.jackrabbit.oak.composite.CompositeNodeState.compareAgainstBaseState(CompositeNodeState.java:164)
    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.plugins.version.VersionHook.processCommit(VersionHook.java:75)
    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.composite.CommitHookEnhancer.processCommit(CommitHookEnhancer.java:55)
    at org.apache.jackrabbit.oak.segment.scheduler.Commit.apply(Commit.java:99)
    at org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.execute(LockBasedScheduler.java:299)
    at org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.schedule(LockBasedScheduler.java:270)
    at org.apache.jackrabbit.oak.segment.SegmentNodeStore.merge(SegmentNodeStore.java:212)
    at org.apache.jackrabbit.oak.composite.CompositeNodeStore.merge(CompositeNodeStore.java:149)
    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)
    ... 28 more{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)