From 717358b56bce7d1942a0c5ae3ba45cf5e967c7d9 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:44:54 +0200 Subject: [PATCH] Short circuit ClassUtils.findPubliclyAccessibleMethodIfPossible(...) Once we find a publicly accessible method, there is no need to continue traversing the type hierarchy. See gh-35556 --- .../src/main/java/org/springframework/util/ClassUtils.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/util/ClassUtils.java b/spring-core/src/main/java/org/springframework/util/ClassUtils.java index 6d33e434ce4..04bf8a42f67 100644 --- a/spring-core/src/main/java/org/springframework/util/ClassUtils.java +++ b/spring-core/src/main/java/org/springframework/util/ClassUtils.java @@ -1536,7 +1536,6 @@ public abstract class ClassUtils { private static Method findPubliclyAccessibleMethodIfPossible( String methodName, Class[] parameterTypes, Class declaringClass) { - Method result = null; Class current = declaringClass.getSuperclass(); while (current != null) { Method method = getMethodOrNull(current, methodName, parameterTypes); @@ -1546,11 +1545,11 @@ public abstract class ClassUtils { if (Modifier.isPublic(method.getDeclaringClass().getModifiers()) && method.getDeclaringClass().getModule().isExported( method.getDeclaringClass().getPackageName(), ClassUtils.class.getModule())) { - result = method; + return method; } current = method.getDeclaringClass().getSuperclass(); } - return result; + return null; } /**