From 1dfe737d0e57e8634d3bf48a9e49b001bd106cc3 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 21 Jun 2023 17:17:58 +0200 Subject: [PATCH] Avoid ResolvableType creation for interface/superclass check See gh-30713 --- .../main/java/org/springframework/core/ResolvableType.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/core/ResolvableType.java b/spring-core/src/main/java/org/springframework/core/ResolvableType.java index 2562ffb9fd5..8316e4a4ef5 100644 --- a/spring-core/src/main/java/org/springframework/core/ResolvableType.java +++ b/spring-core/src/main/java/org/springframework/core/ResolvableType.java @@ -567,7 +567,7 @@ public class ResolvableType implements Serializable { try { for (Type genericInterface : resolved.getGenericInterfaces()) { if (genericInterface instanceof Class clazz) { - if (forClass(clazz).hasGenerics()) { + if (clazz.getTypeParameters().length > 0) { return true; } } @@ -576,7 +576,10 @@ public class ResolvableType implements Serializable { catch (TypeNotPresentException ex) { // Ignore non-present types in generic signature } - return getSuperType().hasUnresolvableGenerics(); + Class superclass = resolved.getSuperclass(); + if (superclass != null && superclass != Object.class) { + return getSuperType().hasUnresolvableGenerics(); + } } return false; }