[java] Fix SpotBugs findings in ChromiumDriver and PortProber
#14589
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.
User description
Description
As described in this comment, SpotBugs found some additional bugs in the code.
In this PR I fix part of the found problems.
ChromiumDriverSpotBugs error:
documentation
Yes there is an actual bug here.
When
script.hashCode() == Integer.MIN_VALUEthen the generated code is not valid JavaScript code, and will cause the script to crash.Solution: cast hashCode to
longPortProberSpotBugs error:
documentation
Actually the code in the try block declares that it can throw exceptions of types:
IOExceptionSocketExceptionSecurityExceptionIllegalArgumentExceptionThis can be shortened to
IOException | RuntimeExceptionunion.Motivation and Context
Fixing the actual problems is necessary before enabling full SpotBugs analysis, in order to not break the build.
Types of changes
Checklist
PR Type
Bug fix
Description
ChromiumDriverby casting the hash code tolongto prevent invalid JavaScript code when the hash code equalsInteger.MIN_VALUE.PortProberby catching specific exceptions (IOExceptionandRuntimeException) instead of a genericException.Changes walkthrough 📝
ChromiumDriver.java
Fix hashCode handling in `ChromiumDriver` pin methodjava/src/org/openqa/selenium/chromium/ChromiumDriver.java
longto avoid invalidJavaScript code.
Integer.MIN_VALUE.PortProber.java
Simplify exception handling in `PortProber` isFree methodjava/src/org/openqa/selenium/net/PortProber.java
IOExceptionandRuntimeException.handling.