Skip to content

Commit a018ae6

Browse files
committed
Lenient fallback when cached WeakReference returns null
Closes gh-34423
1 parent ea419d2 commit a018ae6

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

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

+9-5
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,17 @@ public Predicate getUniqueNamePredicate() {
123123
}
124124

125125
public Object get(AbstractClassGenerator gen, boolean useCache) {
126-
if (!useCache) {
127-
return gen.generate(ClassLoaderData.this);
128-
}
129-
else {
126+
// SPRING PATCH BEGIN
127+
Object value = null;
128+
if (useCache) {
130129
Object cachedValue = generatedClasses.get(gen);
131-
return gen.unwrapCachedValue(cachedValue);
130+
value = gen.unwrapCachedValue(cachedValue);
132131
}
132+
if (value == null) { // fallback when cached WeakReference returns null
133+
value = gen.generate(ClassLoaderData.this);
134+
}
135+
return value;
136+
// SPRING PATCH END
133137
}
134138
}
135139

0 commit comments

Comments
 (0)