From 588578695b3202ce86a79c2c545fed49f0e7842f Mon Sep 17 00:00:00 2001 From: Thierry Boileau Date: Sun, 8 Mar 2026 18:58:26 +0100 Subject: [PATCH] Issue #1487: use ThreadLocalRandom to generate random number in RouteList --- .../src/main/java/org/restlet/util/RouteList.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/org.restlet.java/org.restlet/src/main/java/org/restlet/util/RouteList.java b/org.restlet.java/org.restlet/src/main/java/org/restlet/util/RouteList.java index d010aa51a2..ddf7f8c819 100644 --- a/org.restlet.java/org.restlet/src/main/java/org/restlet/util/RouteList.java +++ b/org.restlet.java/org.restlet/src/main/java/org/restlet/util/RouteList.java @@ -14,10 +14,10 @@ import org.restlet.Restlet; import org.restlet.routing.Route; -import java.security.SecureRandom; import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ThreadLocalRandom; /** * Modifiable list of routes with some helper methods. Note that this class @@ -36,8 +36,6 @@ public final class RouteList extends WrapperList { /** The index of the last route used in the round-robin mode. */ private volatile int lastIndex; - /** Used when asked to return a random route. */ - private final SecureRandom random = new SecureRandom(); /** * Constructor. @@ -161,7 +159,7 @@ public synchronized Route getRandom(Request request, Response response, float re int length = size(); if (length > 0) { - int j = random.nextInt(length); + int j = ThreadLocalRandom.current().nextInt(length); Route route = get(j); if (route.score(request, response) >= requiredScore) {