diff --git a/src/main/java/net/imglib2/cache/ref/SoftRefLoaderCache.java b/src/main/java/net/imglib2/cache/ref/SoftRefLoaderCache.java index 4e3d562..2ca66b6 100644 --- a/src/main/java/net/imglib2/cache/ref/SoftRefLoaderCache.java +++ b/src/main/java/net/imglib2/cache/ref/SoftRefLoaderCache.java @@ -82,7 +82,15 @@ public Entry( final K key ) public V getValue() { - return ref.get(); + // instead of synchronize statement + final CacheSoftReference< V > myRef = ref; + if ( myRef == null ) + return null; + else + return myRef.get(); + + // old code (Problem: myRef can be null when calling invalidateAll() + // return myRef.get(); } public void setValue( final V value )