bug fix - V1 canHandle() should cater maxWaitTime #5
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.
The bug was found when we try registering V3 connector with catch all router "*", some requests which should be handled by V1 connectors but randomly being sent to the V3 catch all connector.
The root cause is that there was a bug in the WebsocketFarm (for V1), when it work out whether there are available connector for the current request, it just check the current availability. But given the fact of under traffic load, the V1 connector is possible have some delay on registering back ( as it need to create new connector socket from time to time ).
A test case (src/test/java/com/hsbc/cranker/mucranker/MultiConnectorTest.java) is added to reproduce this consistently.
The fix is to cater the wait time like below
The PR also including some javadoc fix.