Browse Source

Lenient fallback when cached WeakReference returns null

Closes gh-34423
6.1.x
Juergen Hoeller 11 months ago
parent
commit
a018ae6e02
  1. 14
      spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java

14
spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java

@ -123,13 +123,17 @@ abstract public class AbstractClassGenerator<T> implements ClassGenerator { @@ -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
}
}

Loading…
Cancel
Save