It appears that cache locks are intended to support re-entrancy. The debugger shows a count variable and the lock can be taken several times by the same node and then unlocked an equal number of times.
If a node has taken a lock several times a second node attempts to take the same lock then, as expected, it blocks. However if the first node frees the lock once the second node unlocks and both nodes end up holding the lock. Hopefully demonstrated by the attached test code. The information in this e-mail and any attachments is confidential and may be legally privileged. It is intended solely for the addressee or addressees. Any use or disclosure of the contents of this e-mail/attachments by a not intended recipient is unauthorized and may be unlawful. If you have received this e-mail in error please notify the sender. Please note that any views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of TEMENOS. We recommend that you check this e-mail and any attachments against viruses. TEMENOS accepts no liability for any damage caused by any malicious code or virus transmitted by this e-mail.
CacheMultiLockTest.java
Description: CacheMultiLockTest.java
