diff options
-rw-r--r-- | src/jvm/clojure/lang/Util.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/Util.java b/src/jvm/clojure/lang/Util.java index 2b0831cd..454327e1 100644 --- a/src/jvm/clojure/lang/Util.java +++ b/src/jvm/clojure/lang/Util.java @@ -133,8 +133,9 @@ static public <K,V> void clearCache(ReferenceQueue rq, ConcurrentHashMap<K, Refe ; for(Map.Entry<K, Reference<V>> e : cache.entrySet()) { - if(e.getValue().get() == null) - cache.remove(e.getKey(), e.getValue()); + Reference<V> val = e.getValue(); + if(val != null && val.get() == null) + cache.remove(e.getKey(), val); } } } |