From 9bf01df2302b05f9b31cdcc759c58e6c31bc49fa Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Fri, 28 Mar 2025 20:45:06 +0100 Subject: [PATCH] Evaluate lenientLockingAllowed flag per DefaultListableBeanFactory instance See gh-34303 --- .../beans/factory/support/DefaultListableBeanFactory.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java index 95b3a058ff0..cf395ec5c8e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java @@ -138,8 +138,6 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto */ public static final String STRICT_LOCKING_PROPERTY_NAME = "spring.locking.strict"; - private static final boolean lenientLockingAllowed = !SpringProperties.getFlag(STRICT_LOCKING_PROPERTY_NAME); - @Nullable private static Class jakartaInjectProviderClass; @@ -159,6 +157,9 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto private static final Map> serializableFactories = new ConcurrentHashMap<>(8); + /** Whether lenient locking is allowed in this factory. */ + private final boolean lenientLockingAllowed = !SpringProperties.getFlag(STRICT_LOCKING_PROPERTY_NAME); + /** Optional id for this factory, for serialization purposes. */ @Nullable private String serializationId; @@ -1051,7 +1052,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto @Override @Nullable protected Boolean isCurrentThreadAllowedToHoldSingletonLock() { - return (lenientLockingAllowed && this.preInstantiationPhase ? + return (this.lenientLockingAllowed && this.preInstantiationPhase ? this.preInstantiationThread.get() != PreInstantiation.BACKGROUND : null); }