[ https://issues.apache.org/jira/browse/OAK-9695?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Konrad Windszus resolved OAK-9695. ---------------------------------- Resolution: Fixed Fixed in https://github.com/apache/jackrabbit-oak/commit/1385c05026f9c84178f3942b4c5e3841af26f60a. > Deleting a property fails in case there is a residual protected property > definition in its node type with a non-matching type > ----------------------------------------------------------------------------------------------------------------------------- > > Key: OAK-9695 > URL: https://issues.apache.org/jira/browse/OAK-9695 > Project: Jackrabbit Oak > Issue Type: Bug > Components: jcr > Affects Versions: 1.42.0 > Reporter: Konrad Windszus > Assignee: Konrad Windszus > Priority: Major > > Given that I have defined a node type > {code} > [my:Folder] > nt:hierarchyNode > - * (boolean) protected > - * (string) > {code} > and I have created a node with some string properties, I can no longer remove > those properties or set them to a different string value. > It fails with > {code} > javax.jcr.nodetype.ConstraintViolationException: Item is protected. > at > org.apache.jackrabbit.oak.jcr.session.ItemImpl$ItemWriteOperation.checkPreconditions(ItemImpl.java:98) > at > org.apache.jackrabbit.oak.jcr.session.PropertyImpl$4.checkPreconditions(PropertyImpl.java:116) > at > org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.prePerform(SessionDelegate.java:649) > at > org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:272) > at > org.apache.jackrabbit.oak.jcr.session.PropertyImpl.remove(PropertyImpl.java:113) > {code} > or > {code} > javax.jcr.nodetype.ConstraintViolationException: Item is protected. > at > org.apache.jackrabbit.oak.jcr.session.ItemImpl$ItemWriteOperation.checkPreconditions(ItemImpl.java:98) > at > org.apache.jackrabbit.oak.jcr.session.PropertyImpl$12.checkPreconditions(PropertyImpl.java:466) > at > org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.prePerform(SessionDelegate.java:649) > at > org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:272) > at > org.apache.jackrabbit.oak.jcr.session.PropertyImpl.internalSetValue(PropertyImpl.java:463) > at > org.apache.jackrabbit.oak.jcr.session.PropertyImpl.setValue(PropertyImpl.java:147) > at > org.apache.jackrabbit.oak.jcr.session.PropertyImpl.setValue(PropertyImpl.java:165) > {code} > This is due to the missing type check in > https://github.com/apache/jackrabbit-oak/blob/24b5ea76758a7fd2bf6cf4598d2aaabe87250fb7/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java#L218. -- This message was sent by Atlassian Jira (v8.20.1#820001)