Potential Unreleased Lock
ananmika opened this issue · comments
In V load(K key)
method of org.ehcache.jcache.JCache
class ehcache.acquireWriteLockOnKey(key)
lock doesn't released when value exists.
Lock must be acquired if value not exists in cache.
V load(K key) {
V value;
final Element e = ehcache.get(key);
if(e != null) {
return (V)e.getObjectValue();
}
try {
ehcache.acquireWriteLockOnKey(key);
try {
value = cacheLoader.load(key);
} catch (Exception ex) {
throw new CacheLoaderException(ex);
}
if(value != null) {
putWithoutWriter(key, value);
}
} finally{
ehcache.releaseWriteLockOnKey(key);
}
return value;
}