(ReferenceQueue rq, ConcurrentHashMap<K, Reference<V>> cache)
| 203 | } |
| 204 | |
| 205 | static public <K,V> void clearCache(ReferenceQueue rq, ConcurrentHashMap<K, Reference<V>> cache){ |
| 206 | //cleanup any dead entries |
| 207 | if(rq.poll() != null) |
| 208 | { |
| 209 | while(rq.poll() != null) |
| 210 | ; |
| 211 | for(Map.Entry<K, Reference<V>> e : cache.entrySet()) |
| 212 | { |
| 213 | Reference<V> val = e.getValue(); |
| 214 | if(val != null && val.get() == null) |
| 215 | cache.remove(e.getKey(), val); |
| 216 | } |
| 217 | } |
| 218 | } |
| 219 | |
| 220 | static public RuntimeException runtimeException(String s){ |
| 221 | return new RuntimeException(s); |