Lenient fallback when cached WeakReference returns null

Closes gh-34423
This commit is contained in:
Juergen Hoeller
2025-02-26 10:24:24 +01:00
parent ea419d2dcd
commit a018ae6e02

View File

@@ -123,13 +123,17 @@ abstract public class AbstractClassGenerator<T> implements ClassGenerator {
}
public Object get(AbstractClassGenerator gen, boolean useCache) {
if (!useCache) {
return gen.generate(ClassLoaderData.this);
}
else {
// SPRING PATCH BEGIN
Object value = null;
if (useCache) {
Object cachedValue = generatedClasses.get(gen);
return gen.unwrapCachedValue(cachedValue);
value = gen.unwrapCachedValue(cachedValue);
}
if (value == null) { // fallback when cached WeakReference returns null
value = gen.generate(ClassLoaderData.this);
}
return value;
// SPRING PATCH END
}
}