Skip to content

Commit 319724f

Browse files
author
Phillip Webb
committed
Regularly purge ResolvableType cache
Update ResolvableType to call `purgeUnreferencedEntries` on the cache on each get. Issue: SPR-11394
1 parent 2b4c81e commit 319724f

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import org.springframework.util.Assert;
3737
import org.springframework.util.ClassUtils;
3838
import org.springframework.util.ConcurrentReferenceHashMap;
39+
import org.springframework.util.ConcurrentReferenceHashMap.ReferenceType;
3940
import org.springframework.util.ObjectUtils;
4041
import org.springframework.util.StringUtils;
4142

@@ -1129,11 +1130,12 @@ static ResolvableType forType(Type type, TypeProvider typeProvider, VariableReso
11291130
return NONE;
11301131
}
11311132
// Check the cache, we may have a ResolvableType that may have already been resolved
1133+
cache.purgeUnreferencedEntries();
11321134
ResolvableType key = new ResolvableType(type, typeProvider, variableResolver);
11331135
ResolvableType resolvableType = cache.get(key);
11341136
if (resolvableType == null) {
11351137
resolvableType = new ResolvableType(type, typeProvider, variableResolver, null);
1136-
cache.put(key, resolvableType);
1138+
cache.put(resolvableType, resolvableType);
11371139
}
11381140
return resolvableType;
11391141
}

0 commit comments

Comments
 (0)