diff --git a/java/src/org/openqa/selenium/html5/AppCacheStatus.java b/java/src/org/openqa/selenium/html5/AppCacheStatus.java
index a1fc9649f9568..49c79ee942728 100644
--- a/java/src/org/openqa/selenium/html5/AppCacheStatus.java
+++ b/java/src/org/openqa/selenium/html5/AppCacheStatus.java
@@ -17,8 +17,12 @@
package org.openqa.selenium.html5;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+
/** Represents the application cache status. */
@Deprecated
+@NullMarked
public enum AppCacheStatus {
UNCACHED(0),
IDLE(1),
@@ -43,7 +47,7 @@ public int value() {
* @param value The input value
* @return {@link AppCacheStatus} The corresponding appcache status
*/
- public static AppCacheStatus getEnum(int value) {
+ public static @Nullable AppCacheStatus getEnum(int value) {
for (AppCacheStatus status : AppCacheStatus.values()) {
if (value == status.value()) {
return status;
@@ -52,7 +56,7 @@ public static AppCacheStatus getEnum(int value) {
return null;
}
- public static AppCacheStatus getEnum(String value) {
+ public static @Nullable AppCacheStatus getEnum(String value) {
for (AppCacheStatus status : AppCacheStatus.values()) {
if (status.toString().equalsIgnoreCase(value)) {
return status;
diff --git a/java/src/org/openqa/selenium/internal/Either.java b/java/src/org/openqa/selenium/internal/Either.java
index 0669389ae7271..cb8cde8430777 100644
--- a/java/src/org/openqa/selenium/internal/Either.java
+++ b/java/src/org/openqa/selenium/internal/Either.java
@@ -21,8 +21,11 @@
import java.util.Iterator;
import java.util.function.Function;
import java.util.stream.Stream;
+import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
-public class Either implements Iterable {
+@NullMarked
+public class Either implements Iterable {
private final A left;
private final B right;
@@ -31,11 +34,11 @@ private Either(A a, B b) {
right = b;
}
- public static Either left(A a) {
+ public static Either left(A a) {
return new Either<>(a, null);
}
- public static Either right(B b) {
+ public static Either right(B b) {
return new Either<>(null, b);
}
diff --git a/java/src/org/openqa/selenium/virtualauthenticator/Credential.java b/java/src/org/openqa/selenium/virtualauthenticator/Credential.java
index fa293239d1356..486ff04b5d0cc 100644
--- a/java/src/org/openqa/selenium/virtualauthenticator/Credential.java
+++ b/java/src/org/openqa/selenium/virtualauthenticator/Credential.java
@@ -63,14 +63,21 @@ public static Credential createResidentCredential(
/** Creates a credential from a map. */
public static Credential fromMap(Map map) {
+ Object credentialId = Require.nonNull("credentialId", map.get("credentialId"));
+ Object isResidentCredential =
+ Require.nonNull("isResidentCredential", map.get("isResidentCredential"));
+ Object rpId = Require.nonNull("rpId", map.get("rpId"));
+ Object privateKey = Require.nonNull("privateKey", map.get("privateKey"));
+ Object userHandle = map.get("userHandle");
+ Object signCount = Require.nonNull("signCount", map.get("signCount"));
Base64.Decoder decoder = Base64.getUrlDecoder();
return new Credential(
- decoder.decode((String) map.get("credentialId")),
- (boolean) map.get("isResidentCredential"),
- (String) map.get("rpId"),
- new PKCS8EncodedKeySpec(decoder.decode((String) map.get("privateKey"))),
- map.get("userHandle") == null ? null : decoder.decode((String) map.get("userHandle")),
- ((Long) map.get("signCount")).intValue());
+ decoder.decode((String) credentialId),
+ (boolean) isResidentCredential,
+ (String) rpId,
+ new PKCS8EncodedKeySpec(decoder.decode((String) privateKey)),
+ userHandle == null ? null : decoder.decode((String) userHandle),
+ ((Long) signCount).intValue());
}
private Credential(