From 71bbabc1cccf125ba8b906dec9106dd6ef80e25c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Sun, 20 Nov 2022 16:50:32 +0100 Subject: [PATCH] Do not use LocalVariableTableParameterNameDiscoverer in AOT mode --- .../core/DefaultParameterNameDiscoverer.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/spring-core/src/main/java/org/springframework/core/DefaultParameterNameDiscoverer.java b/spring-core/src/main/java/org/springframework/core/DefaultParameterNameDiscoverer.java index 67dd75e44919..73e1f40deaae 100644 --- a/spring-core/src/main/java/org/springframework/core/DefaultParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/DefaultParameterNameDiscoverer.java @@ -16,11 +16,13 @@ package org.springframework.core; +import org.springframework.aot.AotDetector; + /** * Default implementation of the {@link ParameterNameDiscoverer} strategy interface, * using the Java 8 standard reflection mechanism (if available), and falling back - * to the ASM-based {@link LocalVariableTableParameterNameDiscoverer} for checking - * debug information in the class file. + * to the ASM-based {@link LocalVariableTableParameterNameDiscoverer} (when not using + * AOT-processed optimizations) for checking debug information in the class file. * *

If a Kotlin reflection implementation is present, * {@link KotlinReflectionParameterNameDiscoverer} is added first in the list and @@ -43,7 +45,9 @@ public DefaultParameterNameDiscoverer() { addDiscoverer(new KotlinReflectionParameterNameDiscoverer()); } addDiscoverer(new StandardReflectionParameterNameDiscoverer()); - addDiscoverer(new LocalVariableTableParameterNameDiscoverer()); + if (!AotDetector.useGeneratedArtifacts()) { + addDiscoverer(new LocalVariableTableParameterNameDiscoverer()); + } } }