Exception - Cannot set property. Node is checked in.
Hi All,
I am getting below exception while trying to update/add bulk metadata properties for a given node:
Exception: javax.jcr.version.VersionException: Cannot set property. Node is checked in.
at org.apache.jackrabbit.oak.jcr.session.NodeImpl$35.checkPreconditions(NodeImpl.java:1357)
at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.prePerform(SessionDelegate.java:606)
at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:197)
at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112)
at org.apache.jackrabbit.oak.jcr.session.NodeImpl.internalSetProperty(NodeImpl.java:1352)
at org.apache.jackrabbit.oak.jcr.session.NodeImpl.setProperty(NodeImpl.java:432)
The node is of type mix:versionable and I am trying to set String and String[] type property. Setting up few properties thru the code work fine, however when I try to set large set of data, it throws above exception. I set property as:
metadataNode.setProperty(name, metadataValue);
To resolve above error, I tried to checkout and check in the current node: /content/dam/abc/product-design/44739_Asset.tif and It resulted into following error:
/content/dam/abc/product-design/44739_Asset.tif/jcr:content/metadata is not versionable
at org.apache.jackrabbit.oak.jcr.version.ReadWriteVersionManager.checkout(ReadWriteVersionManager.java:161)
at org.apache.jackrabbit.oak.jcr.delegate.VersionManagerDelegate.checkout(VersionManagerDelegate.java:75)
at org.apache.jackrabbit.oak.jcr.version.VersionManagerImpl$6.performVoid(VersionManagerImpl.java:340)
at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:266)
at org.apache.jackrabbit.oak.jcr.version.VersionManagerImpl.checkout(VersionManagerImpl.java:331)
at com.day.cq.workflow.compatibility.CQWorkflowProcessRunner.execute(CQWorkflowProcessRunner.java:93)
at com.adobe.granite.workflow.core.job.HandlerBase.executeProcess(HandlerBase.java:184)
at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:234)
at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:512)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:303)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:66)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:238)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Can you please suggest?
Thanks.