-
Notifications
You must be signed in to change notification settings - Fork 41.9k
Closed
Labels
type: regressionA regression from a previous releaseA regression from a previous release
Milestone
Description
Hi
I found a bug when testing version 3.2.0-RC2 when binding in a configuration properties.
My configuration properties:
import com.jayway.jsonpath.JsonPath;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "app.prop1")
public class MyProperties {
String name;
JsonPath jsonPaths;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public JsonPath getJsonPaths() {
return jsonPaths;
}
}Stacktrace:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.0-RC2)
2023-11-03T14:59:22.056+01:00 INFO 18415 --- [ main] [ ] c.e.s.Sb3RestWebmvcApplication : Starting Sb3RestWebmvcApplication using Java 17.0.8 with PID 18415 (/home/jorgerma/dev_tmp/sb3-rest-webmvc/target/classes started by jorgerma in /home/jorgerma/dev_tmp/sb3-rest-webmvc)
2023-11-03T14:59:22.059+01:00 INFO 18415 --- [ main] [ ] c.e.s.Sb3RestWebmvcApplication : No active profile set, falling back to 1 default profile: "default"
2023-11-03T14:59:22.884+01:00 INFO 18415 --- [ main] [ ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)
2023-11-03T14:59:22.894+01:00 INFO 18415 --- [ main] [ ] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2023-11-03T14:59:22.895+01:00 INFO 18415 --- [ main] [ ] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.15]
2023-11-03T14:59:22.939+01:00 INFO 18415 --- [ main] [ ] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2023-11-03T14:59:22.940+01:00 INFO 18415 --- [ main] [ ] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 843 ms
2023-11-03T14:59:23.168+01:00 WARN 18415 --- [ main] [ ] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.boot.context.properties.ConfigurationPropertiesBindException: Error creating bean with name 'app.prop1-com.example.sb3restwebmvc.config.MyProperties': Could not bind properties to 'MyProperties' : prefix=app.prop1, ignoreInvalidFields=false, ignoreUnknownFields=true
2023-11-03T14:59:23.169+01:00 INFO 18415 --- [ main] [ ] i.o.sdk.trace.SdkTracerProvider : Calling shutdown() multiple times.
2023-11-03T14:59:23.172+01:00 INFO 18415 --- [ main] [ ] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2023-11-03T14:59:23.175+01:00 WARN 18415 --- [ main] [ ] o.a.c.loader.WebappClassLoaderBase : The web application [ROOT] appears to have started a thread named [BatchSpanProcessor_WorkerThread-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@17.0.8/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.8/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
java.base@17.0.8/java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:435)
app//io.opentelemetry.sdk.trace.export.BatchSpanProcessor$Worker.run(BatchSpanProcessor.java:253)
java.base@17.0.8/java.lang.Thread.run(Thread.java:833)
2023-11-03T14:59:23.187+01:00 INFO 18415 --- [ main] [ ] .s.b.a.l.ConditionEvaluationReportLogger :
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2023-11-03T14:59:23.201+01:00 ERROR 18415 --- [ main] [ ] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'app.prop1.json-paths' to com.jayway.jsonpath.JsonPath:
Reason: java.lang.IllegalStateException: Failed to extract parameter names for private com.jayway.jsonpath.JsonPath(java.lang.String,com.jayway.jsonpath.Predicate[])
Action:
Update your application's configurationReviewing the problem in more detail, this error occurs when LogCorrelationPropertySource is in the context, otherwise, the operation is correct.
Lines 36 to 49 in ab2c7d0
| class LogCorrelationEnvironmentPostProcessor implements EnvironmentPostProcessor { | |
| @Override | |
| public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { | |
| if (ClassUtils.isPresent("io.micrometer.tracing.Tracer", application.getClassLoader())) { | |
| environment.getPropertySources().addLast(new LogCorrelationPropertySource(this, environment)); | |
| } | |
| } | |
| /** | |
| * Log correlation {@link PropertySource}. | |
| */ | |
| private static class LogCorrelationPropertySource extends PropertySource<Object> { | |
In Spring boot 3.1.5 it works fine.
I attach a small example to reproduce it.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
type: regressionA regression from a previous releaseA regression from a previous release