Skip to content

Commit 29d021a

Browse files
dreis2211jhoeller
authored andcommitted
Avoid possible memory leak in ResolvableType
1 parent cd5dc84 commit 29d021a

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ VariableResolver asVariableResolver() {
935935
if (this == NONE) {
936936
return null;
937937
}
938-
return new DefaultVariableResolver();
938+
return new DefaultVariableResolver(this);
939939
}
940940

941941
/**
@@ -1452,17 +1452,23 @@ interface VariableResolver extends Serializable {
14521452

14531453

14541454
@SuppressWarnings("serial")
1455-
private class DefaultVariableResolver implements VariableResolver {
1455+
private static class DefaultVariableResolver implements VariableResolver {
1456+
1457+
private final ResolvableType source;
1458+
1459+
DefaultVariableResolver(ResolvableType resolvableType) {
1460+
this.source = resolvableType;
1461+
}
14561462

14571463
@Override
14581464
@Nullable
14591465
public ResolvableType resolveVariable(TypeVariable<?> variable) {
1460-
return ResolvableType.this.resolveVariable(variable);
1466+
return this.source.resolveVariable(variable);
14611467
}
14621468

14631469
@Override
14641470
public Object getSource() {
1465-
return ResolvableType.this;
1471+
return this.source;
14661472
}
14671473
}
14681474

0 commit comments

Comments
 (0)