Description
It was reported that in one instance a lock keep-alive thread kept running even though the subject node of the lock had been removed:
ERROR [pool-3-thread-1] org.hippoecm.repository.quartz.SchedulerModule - Failed to refresh lock
javax.jcr.ItemNotFoundException: 0e3b7bf6-bc64-439e-84dc-7bcdeea5545c
at org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:384)
at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:328)
at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:622)
at org.apache.jackrabbit.core.SessionImpl.getNodeById(SessionImpl.java:497)
at org.apache.jackrabbit.core.SessionImpl.getNodeByIdentifier(SessionImpl.java:1049)
at org.hippoecm.repository.decorating.SessionDecorator.getNodeByIdentifier(SessionDecorator.java:358)
at org.hippoecm.repository.quartz.JCRJobStore.refreshLock(JCRJobStore.java:415)
at org.hippoecm.repository.quartz.JCRJobStore.access$000(JCRJobStore.java:61)
at org.hippoecm.repository.quartz.JCRJobStore$1.run(JCRJobStore.java:431)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
It is unclear what sequence of events could lead to such a condition. In any case we should simply terminate the keep-alive when it occurs.