public V get(K key) { V v = cache.getIfPresent(key); if (v == null) { try { lockManager.hold(locks, key); if (v == null) { v = loader.load(key); cache.put(key, v); } } catch (Exception ex) { PGException.pgThrow(ex); } finally { lockManager.release(locks, key); } } return v; }