diff --git a/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java b/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java index a394b57af5fb..b0d3637255d7 100644 --- a/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java @@ -85,12 +85,7 @@ public String[] getParameterNames(Constructor ctor) { private String[] doGetParameterNames(Executable executable) { Class declaringClass = executable.getDeclaringClass(); Map map = this.parameterNamesCache.computeIfAbsent(declaringClass, this::inspectClass); - String[] names = (map != NO_DEBUG_INFO_MAP ? map.get(executable) : null); - if (names != null && logger.isWarnEnabled()) { - logger.warn("Using deprecated '-debug' fallback for parameter name resolution. " + - "Compile the affected code with '-parameters' instead: " + executable); - } - return names; + return (map != NO_DEBUG_INFO_MAP ? map.get(executable) : null); } /** @@ -115,6 +110,10 @@ private Map inspectClass(Class clazz) { ClassReader classReader = new ClassReader(is); Map map = new ConcurrentHashMap<>(32); classReader.accept(new ParameterNameDiscoveringVisitor(clazz, map), 0); + if (logger.isWarnEnabled()) { + logger.warn("Using deprecated '-debug' fallback for parameter name resolution. Compile the " + + "affected code with '-parameters' instead or avoid its introspection: " + clazz.getName()); + } return map; } catch (IOException ex) {