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