Open mk868 opened 4 months ago
@mk868, thank you for creating this issue. We will troubleshoot it as soon as we can.
Triage this issue by using labels.
If information is missing, add a helpful comment and then I-issue-template
label.
If the issue is a question, add the I-question
label.
If the issue is valid but there is no time to troubleshoot it, consider adding the help wanted
label.
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable G-*
label, and it will provide the correct link and auto-close the
issue.
After troubleshooting the issue, please add the R-awaiting answer
label.
Thank you!
This issue is looking for contributors.
Please comment below or reach out to us through our IRC/Slack/Matrix channels if you are interested.
I can contribute to add these annotations. Can I just create a Pull Request with changes? Or Is additional analysis/confirmation needed for this feature by the Selenium team?
@mk868, yes, please. Focus on small PRs so they can be quickly reviewed and merged. It does not matter if you send many PRs. A PR with 2-3 files changed will be merged rather quickly, but a PR with 20 files changed will take several days.
Feature and motivation
I suggest adding JSpecify Nullness annotations to the Selenium framework code. These annotations allow you to specify which parameters and return values can be null. I'm aware that information about potential null values are already placed in the JavaDoc, but using annotations will be transparent to IDEs and static code analyzers. This will give developers better exposure of potential problems with their code in order to avoid NullPointerExceptions.
Using annotations will also improve interoperability with Kotlin.
Links:
Usage example
The annotated method would look like this:
Then the IDE/static code analyzer will display a warning about unsafe code: