I found the previous version (which is what's here now + putIfAbsent instead of put) more readable in terms of the code.  The original FindBugs fix also introduced a different error that I didn't see fixed until I rebased for this pull request.

I'm ok with closing this now that the @samarthjain fixed the second error.