fix: #899 - Improve HttpUpgradeHandler initialization validation in TCK#973
Merged
markt-asf merged 2 commits intojakartaee:mainfrom Feb 5, 2026
Merged
Conversation
added 2 commits
February 1, 2026 11:45
…ener Ensure that HttpUpgradeHandler has been properly initialized before calling init() by checking that the delimiter is not null in TCKReadListener. Added getDelimiter() for verification.
…tion Set default delimiter to null and verify its initialization in getDelimiter(). Also ensure consistency between the handler and the read listener to prevent early or missing calls to init().
Contributor
|
All looks good. Thanks for the PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
The current TCK tests for
HttpUpgradeHandlerfail to verify if the container initializes the handler correctly before calling itsinit(WebConnection)method. Specifically,TCKHttpUpgradeHandlerhad a default value for its delimiter, making it impossible to detect ifsetDelimiter()was called by the test servlet or if the container was invokinginit()prematurely.As noted in issue #899, this allows non-compliant implementations to pass the TCK.
Solution
This PR improves the robustness of the TCK by:
delimiterinTCKHttpUpgradeHandleris nownullby default.TCKReadListenernow performs anullcheck on the delimiter during construction (which happens insideinit()), ensuring it fails fast if initialization was skipped.getDelimiter()check in the handler to verify that the delimiter used by theReadListenermatches the one set in the handler.These changes ensure that:
HttpUpgradeHandlerinstances are properly initialized.init(WebConnection wc)is not called too early.Related Issue
Fixes #899
Verification Results