Replacing custom loop by ServiceLoader.findFirst()
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/client/FactoryFinder.java b/jaxrs-api/src/main/java/jakarta/ws/rs/client/FactoryFinder.java
index 74deb05..237e3f7 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/client/FactoryFinder.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/client/FactoryFinder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -174,10 +174,7 @@
private static <T> T findFirstService(final String factoryId, final ClassLoader cl, final Class<T> service) {
final PrivilegedAction<T> action = () -> {
try {
- final ServiceLoader<T> loader = ServiceLoader.load(service, cl);
- if (loader.iterator().hasNext()) {
- return loader.iterator().next();
- }
+ return ServiceLoader.load(service, cl).findFirst().orElse(null);
} catch (Exception e) {
LOGGER.log(Level.FINER, "Failed to load service " + factoryId + ".", e);
}
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/ext/FactoryFinder.java b/jaxrs-api/src/main/java/jakarta/ws/rs/ext/FactoryFinder.java
index bbd5afd..bd46f79 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/ext/FactoryFinder.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/ext/FactoryFinder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -174,10 +174,7 @@
private static <T> T findFirstService(final String factoryId, final ClassLoader cl, final Class<T> service) {
final PrivilegedAction<T> action = () -> {
try {
- final ServiceLoader<T> loader = ServiceLoader.load(service, cl);
- if (loader.iterator().hasNext()) {
- return loader.iterator().next();
- }
+ return ServiceLoader.load(service, cl).findFirst().orElse(null);
} catch (Exception e) {
LOGGER.log(Level.FINER, "Failed to load service " + factoryId + ".", e);
}
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/sse/FactoryFinder.java b/jaxrs-api/src/main/java/jakarta/ws/rs/sse/FactoryFinder.java
index 40440ae..a9d2415 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/sse/FactoryFinder.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/sse/FactoryFinder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -174,10 +174,7 @@
private static <T> T findFirstService(final String factoryId, final ClassLoader cl, final Class<T> service) {
final PrivilegedAction<T> action = () -> {
try {
- final ServiceLoader<T> loader = ServiceLoader.load(service, cl);
- if (loader.iterator().hasNext()) {
- return loader.iterator().next();
- }
+ return ServiceLoader.load(service, cl).findFirst().orElse(null);
} catch (Exception e) {
LOGGER.log(Level.FINER, "Failed to load service " + factoryId + ".", e);
}