Release reference to HttpStreamsServerHandler.lastRequest when possible #161
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.
When using idleTimeout configuration in a play application, the HttpStreamsServerHandler keeps a reference to lastRequest, and lastRequest can be relatively large (10kb). When there are many open idle connections, lastRequest heap usage can add up, even though the data is not used (lastRequest will be reassigned to a new value when serving the next request).
This change sets lastRequest to null to allow the HttpRequest to be GC'd even if HttpStreamsServerHandler is kept in the heap.
To test I deployed this change in my play application and observed the heap dump before/after the change. The idle connections take a lot less heap space now. Existing unit tests in HttpStreamsTest continue to pass.