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)

Reply via email to