this occurs very rarely and hard to reproduce.
Looks like a bug in WeakValueMap when the entry is not null but the held value is null. Then the methods falls through to:
return backing.put(key, createReference(key, value));
The fix is to change this to:
backing.put(key, createReference(key, value));
Hard to confirm the fix as it relates to gc timing.