Correct work with weak references in QNameCache #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Quote from WeakHashMap's javadoc:
So the current code leads to memory leaks in case of big amount different qnames because it's name (key) is used in QName. My experience - about 1 GB of uncollected garbage for 2 days in production.
This behaviour is reproduced in https://gist.github.com/skel-nl/291abe36aed9a90f9313f9129b4fbd10
Example with fix like in this pull request - https://gist.github.com/skel-nl/1768180608ed7a24f8f28c8de8792ff8