Issue #5365 ISE not NPE if fail to create session. #5370
Merged
+3
−0
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.
Closes #5365
SessionHandler.newHttpSession(Request) is called by Request.getSession(true) when a new session needs to be created. If SessionHandler fails to create the session for whatever reason, it logs the exception and returns null. Request.getSession(true) isn't expecting a null and can cause a confusing NPE elsewhere deeper in the code. As Request.getSession(boolean) is a servlet api method, it cannot throw a checked exception, nor according to the api can it return null. So we throw ISE if SessionHandler.newHttpSession(Request) returns null. I think in jetty-10 it would be better to modify the signature of SessionHandler.newHttpSession(Request) to throw the exception rather than catching and returning null.