From 0ac04a7f86a80e48cc2f50711b2ac089f2c8552f Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 29 Apr 2024 18:02:39 +0200 Subject: [PATCH 1/3] Include original exception message in dependency initialization exception Closes gh-32470 --- .../beans/factory/support/AbstractBeanFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java index 0ce180a749f..d992d190fd3 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanFactory.java @@ -322,7 +322,8 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp // requested (indicated by required type), not for depends-on cascades. throw new BeanCreationException(mbd.getResourceDescription(), beanName, "Failed to initialize dependency '" + ex.getBeanName() + "' of " + - requiredType.getSimpleName() + " bean '" + beanName + "'", ex); + requiredType.getSimpleName() + " bean '" + beanName + "': " + + ex.getMessage(), ex); } throw ex; } From 3cf2cd70aba33c5503d00f4d627d0fc00684264c Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 29 Apr 2024 18:02:44 +0200 Subject: [PATCH 2/3] Polishing --- .../beans/factory/support/RegisteredBean.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java index 7ed86ef98f7..791a450f8c3 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/RegisteredBean.java @@ -227,9 +227,8 @@ public final class RegisteredBean { if (executable instanceof Method method && !Modifier.isStatic(method.getModifiers())) { String factoryBeanName = getMergedBeanDefinition().getFactoryBeanName(); if (factoryBeanName != null && this.beanFactory.containsBean(factoryBeanName)) { - Class target = this.beanFactory.getMergedBeanDefinition(factoryBeanName) - .getResolvableType().toClass(); - return new InstantiationDescriptor(executable, target); + return new InstantiationDescriptor(executable, + this.beanFactory.getMergedBeanDefinition(factoryBeanName).getResolvableType().toClass()); } } return new InstantiationDescriptor(executable, executable.getDeclaringClass()); @@ -260,8 +259,9 @@ public final class RegisteredBean { .append("mergedBeanDefinition", getMergedBeanDefinition()).toString(); } + /** - * Describe how a bean should be instantiated. While the {@code targetClass} + * Descriptor for how a bean should be instantiated. While the {@code targetClass} * is usually the declaring class of the {@code executable}, there are cases * where retaining the actual concrete type is necessary. * @param executable the {@link Executable} to invoke @@ -275,6 +275,7 @@ public final class RegisteredBean { } } + /** * Resolver used to obtain inner-bean details. */ From 26706f003962ab1a22981633deeedbae7ba475c4 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 29 Apr 2024 18:04:25 +0200 Subject: [PATCH 3/3] Upgrade to Groovy 4.0.21, Tomcat 10.1.23, Jetty 12.0.8, Netty 4.1.109, Undertow 2.3.13, Checkstyle 10.16 --- .../build/CheckstyleConventions.java | 2 +- framework-platform/framework-platform.gradle | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/build/CheckstyleConventions.java b/buildSrc/src/main/java/org/springframework/build/CheckstyleConventions.java index 8d6afe7af80..f8474a5cca3 100644 --- a/buildSrc/src/main/java/org/springframework/build/CheckstyleConventions.java +++ b/buildSrc/src/main/java/org/springframework/build/CheckstyleConventions.java @@ -50,7 +50,7 @@ public class CheckstyleConventions { project.getPlugins().apply(CheckstylePlugin.class); project.getTasks().withType(Checkstyle.class).forEach(checkstyle -> checkstyle.getMaxHeapSize().set("1g")); CheckstyleExtension checkstyle = project.getExtensions().getByType(CheckstyleExtension.class); - checkstyle.setToolVersion("10.15.0"); + checkstyle.setToolVersion("10.16.0"); checkstyle.getConfigDirectory().set(project.getRootProject().file("src/checkstyle")); String version = SpringJavaFormatPlugin.class.getPackage().getImplementationVersion(); DependencySet checkstyleDependencies = project.getConfigurations().getByName("checkstyle").getDependencies(); diff --git a/framework-platform/framework-platform.gradle b/framework-platform/framework-platform.gradle index 3a8cd0e93bd..e1f8e52e00c 100644 --- a/framework-platform/framework-platform.gradle +++ b/framework-platform/framework-platform.gradle @@ -9,15 +9,15 @@ javaPlatform { dependencies { api(platform("com.fasterxml.jackson:jackson-bom:2.15.4")) api(platform("io.micrometer:micrometer-bom:1.12.5")) - api(platform("io.netty:netty-bom:4.1.108.Final")) + api(platform("io.netty:netty-bom:4.1.109.Final")) api(platform("io.netty:netty5-bom:5.0.0.Alpha5")) api(platform("io.projectreactor:reactor-bom:2023.0.5")) api(platform("io.rsocket:rsocket-bom:1.1.3")) - api(platform("org.apache.groovy:groovy-bom:4.0.20")) + api(platform("org.apache.groovy:groovy-bom:4.0.21")) api(platform("org.apache.logging.log4j:log4j-bom:2.21.1")) api(platform("org.assertj:assertj-bom:3.25.3")) - api(platform("org.eclipse.jetty:jetty-bom:12.0.7")) - api(platform("org.eclipse.jetty.ee10:jetty-ee10-bom:12.0.7")) + api(platform("org.eclipse.jetty:jetty-bom:12.0.8")) + api(platform("org.eclipse.jetty.ee10:jetty-ee10-bom:12.0.8")) api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3")) api(platform("org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.0")) api(platform("org.junit:junit-bom:5.10.2")) @@ -55,9 +55,9 @@ dependencies { api("io.r2dbc:r2dbc-spi:1.0.0.RELEASE") api("io.reactivex.rxjava3:rxjava:3.1.8") api("io.smallrye.reactive:mutiny:1.10.0") - api("io.undertow:undertow-core:2.3.12.Final") - api("io.undertow:undertow-servlet:2.3.12.Final") - api("io.undertow:undertow-websockets-jsr:2.3.12.Final") + api("io.undertow:undertow-core:2.3.13.Final") + api("io.undertow:undertow-servlet:2.3.13.Final") + api("io.undertow:undertow-websockets-jsr:2.3.13.Final") api("io.vavr:vavr:0.10.4") api("jakarta.activation:jakarta.activation-api:2.0.1") api("jakarta.annotation:jakarta.annotation-api:2.0.0") @@ -103,10 +103,10 @@ dependencies { api("org.apache.httpcomponents.client5:httpclient5:5.3.1") api("org.apache.httpcomponents.core5:httpcore5-reactive:5.2.4") api("org.apache.poi:poi-ooxml:5.2.5") - api("org.apache.tomcat.embed:tomcat-embed-core:10.1.20") - api("org.apache.tomcat.embed:tomcat-embed-websocket:10.1.20") - api("org.apache.tomcat:tomcat-util:10.1.20") - api("org.apache.tomcat:tomcat-websocket:10.1.20") + api("org.apache.tomcat.embed:tomcat-embed-core:10.1.23") + api("org.apache.tomcat.embed:tomcat-embed-websocket:10.1.23") + api("org.apache.tomcat:tomcat-util:10.1.23") + api("org.apache.tomcat:tomcat-websocket:10.1.23") api("org.aspectj:aspectjrt:1.9.22") api("org.aspectj:aspectjtools:1.9.22") api("org.aspectj:aspectjweaver:1.9.22")