I've spotted some code in XALockManager.checkLock(NodeImpl node) that seems
somewhat dubious to me:

 

    if (info != null && info.getLockHolder() != node.getSession()) 

if this line evaluates to true a LockException is thrown

 

it seems to be not unusual for info.getLockHolder() to be null so I've
changed that line to 

    if (info != null && info.getLockHolder() != null && info.getLockHolder()


 

this obviously changes the locking/unlocking behavior.

At this stage I do not understand the jackrabbit code or the jcr locking
philosophy very well so any feedback on my thoughts here will be greatly
appreciated

 

Cheers

 

roland

 

 

Reply via email to