-
Bug
-
Resolution: Fixed
-
Major
-
4.2.0
-
None
-
4.2 RC3
The method org.ametys.solr.helper.AclCacheManager.getBitSetLock(CacheKey, UserCacheKey) could, in some (rare, but existant) scenarii, return different Locks (let's call them Lock1 and Lock2) for same segment and user if called by two threads in almost the same instant.
Thus, a third request in almost the same time could obtain one of the two locks (for instance Lock1), be unlocked (due to thread 1 having finished) and get in cache a null value because thread 2 is removingjust after its trylock() the bitset for the key.