close
Skip to content

[build] Prepare for release of selenium-4.45.0 - #17680

Merged
diemol merged 13 commits into
trunkfrom
release-preparation-selenium-4.45.0
Jun 16, 2026
Merged

[build] Prepare for release of selenium-4.45.0#17680
diemol merged 13 commits into
trunkfrom
release-preparation-selenium-4.45.0

Conversation

@selenium-ci

Copy link
Copy Markdown
Member

Release Info

Tag selenium-4.45.0
Version 4.45.0
Language all

Updates Applied

Component Status
Versions ✅ Updated
CDP version ✅ Updated
Binding Dependencies ✅ Updated
Changelogs ✅ Updated
Rust Changelogs ✅ Updated
Pinned Browsers ⏭️ Skipped (no changes)
Selenium Manager ✅ Updated
Multitool binaries ✅ Updated
Authors ✅ Updated

Auto-generated by release-preparation workflow

@selenium-ci selenium-ci added C-build B-grid Everything grid and server related C-py Python Bindings C-rb Ruby Bindings C-dotnet .NET Bindings C-java Java Bindings C-nodejs JavaScript Bindings B-build Includes scripting, bazel and CI integrations B-devtools Includes everything BiDi or Chrome DevTools related C-rust Rust code is mostly Selenium Manager B-manager Selenium Manager labels Jun 15, 2026
@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0)

Grey Divider


Remediation recommended

1. Overbroad RemoteWebDriver suppression 🐞 Bug ⚙ Maintainability
Description
The new SpotBugs exclusion uses the regex ~org.openqa.selenium.remote.RemoteWebDriver.*, which
also matches other classes with the same prefix (e.g., RemoteWebDriverBuilder) and will suppress
NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE warnings beyond the intended target. This reduces SpotBugs’
ability to flag null-dereference regressions in those other matched classes.
Code

java/spotbugs-excludes.xml[R157-160]

+  <Match>
+    <Class name="~org.openqa.selenium.remote.RemoteWebDriver.*"/>
+    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
+  </Match>
Evidence
The SpotBugs filter introduces a prefix regex for RemoteWebDriver.*; the repository also contains
RemoteWebDriverBuilder, which matches that regex, demonstrating the suppression is broader than
just the intended RemoteWebDriver class/inners.

java/spotbugs-excludes.xml[157-160]
java/src/org/openqa/selenium/remote/RemoteWebDriverBuilder.java[89-104]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`java/spotbugs-excludes.xml` adds a regex suppression for `~org.openqa.selenium.remote.RemoteWebDriver.*`, which matches any class whose FQCN starts with `org.openqa.selenium.remote.RemoteWebDriver` (including `RemoteWebDriverBuilder`). This broadens the suppression scope and can unintentionally hide future SpotBugs NPE warnings.

### Issue Context
Evidence that the regex matches more than intended:
- Exclusion: `~org.openqa.selenium.remote.RemoteWebDriver.*`
- Existing class: `org.openqa.selenium.remote.RemoteWebDriverBuilder`

### Fix Focus Areas
- java/spotbugs-excludes.xml[157-160]

### Suggested change
Replace the broad prefix regex with either:
1) An exact class match for the top-level class, plus a separate regex for inner classes (using `$`), or
2) A single anchored regex like:
  - `~org\.openqa\.selenium\.remote\.RemoteWebDriver(\$.*)?$`

Apply the same tightening pattern to other newly-added `~...*` remote suppressions if they were also intended to only cover the exact class + its inner classes (not same-prefix siblings).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Overbroad JdkHttpClient suppression 🐞 Bug ⚙ Maintainability
Description
The new exclusion ~org.openqa.selenium.remote.http.jdk.JdkHttpClient.* suppresses
USO_UNSAFE_OBJECT_SYNCHRONIZATION for any class beginning with JdkHttpClient, not just
JdkHttpClient itself. This broad selector can unintentionally hide synchronization warnings in
other same-prefix classes (present or future), reducing SpotBugs signal quality.
Code

java/spotbugs-excludes.xml[R287-290]

+  <Match>
+    <Class name="~org.openqa.selenium.remote.http.jdk.JdkHttpClient.*"/>
+    <Bug pattern="USO_UNSAFE_OBJECT_SYNCHRONIZATION"/>
+  </Match>
Evidence
The new SpotBugs filter rule uses a JdkHttpClient.* prefix regex; the repo contains another class
with that same prefix (JdkHttpClientTest), showing the exclusion matches more than just
JdkHttpClient.

java/spotbugs-excludes.xml[287-290]
java/test/org/openqa/selenium/remote/http/jdk/JdkHttpClientTest.java[18-33]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`java/spotbugs-excludes.xml` adds `~org.openqa.selenium.remote.http.jdk.JdkHttpClient.*`, which matches any class whose FQCN starts with `...JdkHttpClient` (not just the exact `JdkHttpClient` class). This broadens the suppression scope and can hide real `USO_UNSAFE_OBJECT_SYNCHRONIZATION` warnings in other same-prefix types.

### Issue Context
There is at least one additional same-prefix class in the repo (`JdkHttpClientTest`), demonstrating the selector is not constrained to just the intended class name.

### Fix Focus Areas
- java/spotbugs-excludes.xml[287-290]

### Suggested change
Prefer an exact class match:
- `<Class name="org.openqa.selenium.remote.http.jdk.JdkHttpClient"/>`

If the intent was to include inner classes only, add a separate regex explicitly for inners:
- `~org\.openqa\.selenium\.remote\.http\.jdk\.JdkHttpClient\$.*`

(or use a single anchored regex: `~org\.openqa\.selenium\.remote\.http\.jdk\.JdkHttpClient(\$.*)?$`).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Previous review results

Review updated until commit d412d6c

Results up to commit 6d039ba


🐞 Bugs (2) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0)


Remediation recommended
1. Overbroad RemoteWebDriver suppression 🐞 Bug ⚙ Maintainability
Description
The new SpotBugs exclusion uses the regex ~org.openqa.selenium.remote.RemoteWebDriver.*, which
also matches other classes with the same prefix (e.g., RemoteWebDriverBuilder) and will suppress
NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE warnings beyond the intended target. This reduces SpotBugs’
ability to flag null-dereference regressions in those other matched classes.
Code

java/spotbugs-excludes.xml[R157-160]

+  <Match>
+    <Class name="~org.openqa.selenium.remote.RemoteWebDriver.*"/>
+    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
+  </Match>
Evidence
The SpotBugs filter introduces a prefix regex for RemoteWebDriver.*; the repository also contains
RemoteWebDriverBuilder, which matches that regex, demonstrating the suppression is broader than
just the intended RemoteWebDriver class/inners.

java/spotbugs-excludes.xml[157-160]
java/src/org/openqa/selenium/remote/RemoteWebDriverBuilder.java[89-104]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`java/spotbugs-excludes.xml` adds a regex suppression for `~org.openqa.selenium.remote.RemoteWebDriver.*`, which matches any class whose FQCN starts with `org.openqa.selenium.remote.RemoteWebDriver` (including `RemoteWebDriverBuilder`). This broadens the suppression scope and can unintentionally hide future SpotBugs NPE warnings.

### Issue Context
Evidence that the regex matches more than intended:
- Exclusion: `~org.openqa.selenium.remote.RemoteWebDriver.*`
- Existing class: `org.openqa.selenium.remote.RemoteWebDriverBuilder`

### Fix Focus Areas
- java/spotbugs-excludes.xml[157-160]

### Suggested change
Replace the broad prefix regex with either:
1) An exact class match for the top-level class, plus a separate regex for inner classes (using `$`), or
2) A single anchored regex like:
  - `~org\.openqa\.selenium\.remote\.RemoteWebDriver(\$.*)?$`

Apply the same tightening pattern to other newly-added `~...*` remote suppressions if they were also intended to only cover the exact class + its inner classes (not same-prefix siblings).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Overbroad JdkHttpClient suppression 🐞 Bug ⚙ Maintainability
Description
The new exclusion ~org.openqa.selenium.remote.http.jdk.JdkHttpClient.* suppresses
USO_UNSAFE_OBJECT_SYNCHRONIZATION for any class beginning with JdkHttpClient, not just
JdkHttpClient itself. This broad selector can unintentionally hide synchronization warnings in
other same-prefix classes (present or future), reducing SpotBugs signal quality.
Code

java/spotbugs-excludes.xml[R287-290]

+  <Match>
+    <Class name="~org.openqa.selenium.remote.http.jdk.JdkHttpClient.*"/>
+    <Bug pattern="USO_UNSAFE_OBJECT_SYNCHRONIZATION"/>
+  </Match>
Evidence
The new SpotBugs filter rule uses a JdkHttpClient.* prefix regex; the repo contains another class
with that same prefix (JdkHttpClientTest), showing the exclusion matches more than just
JdkHttpClient.

java/spotbugs-excludes.xml[287-290]
java/test/org/openqa/selenium/remote/http/jdk/JdkHttpClientTest.java[18-33]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`java/spotbugs-excludes.xml` adds `~org.openqa.selenium.remote.http.jdk.JdkHttpClient.*`, which matches any class whose FQCN starts with `...JdkHttpClient` (not just the exact `JdkHttpClient` class). This broadens the suppression scope and can hide real `USO_UNSAFE_OBJECT_SYNCHRONIZATION` warnings in other same-prefix types.

### Issue Context
There is at least one additional same-prefix class in the repo (`JdkHttpClientTest`), demonstrating the selector is not constrained to just the intended class name.

### Fix Focus Areas
- java/spotbugs-excludes.xml[287-290]

### Suggested change
Prefer an exact class match:
- `<Class name="org.openqa.selenium.remote.http.jdk.JdkHttpClient"/>`

If the intent was to include inner classes only, add a separate regex explicitly for inners:
- `~org\.openqa\.selenium\.remote\.http\.jdk\.JdkHttpClient\$.*`

(or use a single anchored regex: `~org\.openqa\.selenium\.remote\.http\.jdk\.JdkHttpClient(\$.*)?$`).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit 72ee641

@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit 6d039ba

@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit 33da81a

@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Code review by qodo was updated up to the latest commit d412d6c

@diemol
diemol merged commit cd6a3cd into trunk Jun 16, 2026
63 checks passed
@diemol
diemol deleted the release-preparation-selenium-4.45.0 branch June 16, 2026 04:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations B-devtools Includes everything BiDi or Chrome DevTools related B-grid Everything grid and server related B-manager Selenium Manager C-build C-dotnet .NET Bindings C-java Java Bindings C-nodejs JavaScript Bindings C-py Python Bindings C-rb Ruby Bindings C-rust Rust code is mostly Selenium Manager

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants