Skip to content

Commit 5375f62

Browse files
committed
Cache hasUnresolvableGenerics result for repeated checks
Closes gh-30713 (cherry picked from commit 93218a0)
1 parent c7bc40d commit 5375f62

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

spring-core/src/main/java/org/springframework/core/ResolvableType.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ public class ResolvableType implements Serializable {
133133
@Nullable
134134
private volatile ResolvableType[] generics;
135135

136+
@Nullable
137+
private volatile Boolean unresolvableGenerics;
138+
136139

137140
/**
138141
* Private constructor used to create a new {@link ResolvableType} for cache key purposes,
@@ -545,6 +548,15 @@ public boolean hasUnresolvableGenerics() {
545548
if (this == NONE) {
546549
return false;
547550
}
551+
Boolean unresolvableGenerics = this.unresolvableGenerics;
552+
if (unresolvableGenerics == null) {
553+
unresolvableGenerics = determineUnresolvableGenerics();
554+
this.unresolvableGenerics = unresolvableGenerics;
555+
}
556+
return unresolvableGenerics;
557+
}
558+
559+
private boolean determineUnresolvableGenerics() {
548560
ResolvableType[] generics = getGenerics();
549561
for (ResolvableType generic : generics) {
550562
if (generic.isUnresolvableTypeVariable() || generic.isWildcardWithoutBounds()) {

0 commit comments

Comments
 (0)