From fdcf4d50f0c5a1bb05f1dcf292959c522ac86083 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 30 Apr 2026 14:19:25 +0200 Subject: [PATCH] Consistent wrapping of BeanCreationExceptions from instance suppliers Closes gh-36725 (cherry picked from commit 08c528084371707da86a9f1a412391367b2d8132) --- .../support/AbstractAutowireCapableBeanFactory.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java index 32c70d1f7e2..a45f9612db6 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory.java @@ -610,9 +610,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac if (ex instanceof BeanCreationException bce && beanName.equals(bce.getBeanName())) { throw bce; } - else { - throw new BeanCreationException(mbd.getResourceDescription(), beanName, ex.getMessage(), ex); - } + throw new BeanCreationException(mbd.getResourceDescription(), beanName, ex.getMessage(), ex); } if (earlySingletonExposure) { @@ -1257,8 +1255,8 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac instance = obtainInstanceFromSupplier(supplier, beanName, mbd); } catch (Throwable ex) { - if (ex instanceof BeansException beansException) { - throw beansException; + if (ex instanceof BeanCreationException bce && beanName.equals(bce.getBeanName())) { + throw bce; } throw new BeanCreationException(beanName, "Instantiation of supplied bean failed", ex); }