Skip to content

Commit cbf25b7

Browse files
committed
Reduce deprecation warn logging to one entry per introspected class
Closes gh-29563
1 parent 8391897 commit cbf25b7

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,7 @@ public String[] getParameterNames(Constructor<?> ctor) {
8585
private String[] doGetParameterNames(Executable executable) {
8686
Class<?> declaringClass = executable.getDeclaringClass();
8787
Map<Executable, String[]> map = this.parameterNamesCache.computeIfAbsent(declaringClass, this::inspectClass);
88-
String[] names = (map != NO_DEBUG_INFO_MAP ? map.get(executable) : null);
89-
if (names != null && logger.isWarnEnabled()) {
90-
logger.warn("Using deprecated '-debug' fallback for parameter name resolution. " +
91-
"Compile the affected code with '-parameters' instead: " + executable);
92-
}
93-
return names;
88+
return (map != NO_DEBUG_INFO_MAP ? map.get(executable) : null);
9489
}
9590

9691
/**
@@ -115,6 +110,10 @@ private Map<Executable, String[]> inspectClass(Class<?> clazz) {
115110
ClassReader classReader = new ClassReader(is);
116111
Map<Executable, String[]> map = new ConcurrentHashMap<>(32);
117112
classReader.accept(new ParameterNameDiscoveringVisitor(clazz, map), 0);
113+
if (logger.isWarnEnabled()) {
114+
logger.warn("Using deprecated '-debug' fallback for parameter name resolution. Compile the " +
115+
"affected code with '-parameters' instead or avoid its introspection: " + clazz.getName());
116+
}
118117
return map;
119118
}
120119
catch (IOException ex) {

0 commit comments

Comments
 (0)