106 |
|
public Object putIfAbsent(Object key, Object value) { |
107 |
|
ReentrantReadWriteLock.WriteLock l = rwl.writeLock(); |
108 |
|
l.lock(); |
109 |
< |
try { |
109 |
> |
try { |
110 |
|
Object v = m.get(key); |
111 |
|
return v == null? m.put(key, value) : v; |
112 |
|
} |
116 |
|
public boolean replace(Object key, Object oldValue, Object newValue) { |
117 |
|
ReentrantReadWriteLock.WriteLock l = rwl.writeLock(); |
118 |
|
l.lock(); |
119 |
< |
try { |
119 |
> |
try { |
120 |
|
if (m.get(key).equals(oldValue)) { |
121 |
|
m.put(key, newValue); |
122 |
|
return true; |
129 |
|
public Object replace(Object key, Object newValue) { |
130 |
|
ReentrantReadWriteLock.WriteLock l = rwl.writeLock(); |
131 |
|
l.lock(); |
132 |
< |
try { |
132 |
> |
try { |
133 |
|
if (m.containsKey(key)) |
134 |
|
return m.put(key, newValue); |
135 |
|
return null; |
147 |
|
public boolean remove(Object key, Object value) { |
148 |
|
ReentrantReadWriteLock.WriteLock l = rwl.writeLock(); |
149 |
|
l.lock(); |
150 |
< |
try { |
150 |
> |
try { |
151 |
|
if (m.get(key).equals(value)) { |
152 |
|
m.remove(key); |
153 |
|
return true; |