diff --git a/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java b/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java index 0fbbe69bb5..7b469df0cc 100644 --- a/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java +++ b/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java @@ -67,12 +67,7 @@ public class SimpleThreadScope implements Scope { @Override public Object get(String name, ObjectFactory objectFactory) { Map scope = this.threadScope.get(); - Object scopedObject = scope.get(name); - if (scopedObject == null) { - scopedObject = objectFactory.getObject(); - scope.put(name, scopedObject); - } - return scopedObject; + return scope.computeIfAbsent(name, k -> objectFactory.getObject()); } @Override diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionScope.java b/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionScope.java index 58effc4329..38c93de5b3 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionScope.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/SimpleTransactionScope.java @@ -50,12 +50,7 @@ public class SimpleTransactionScope implements Scope { TransactionSynchronizationManager.registerSynchronization(new CleanupSynchronization(scopedObjects)); TransactionSynchronizationManager.bindResource(this, scopedObjects); } - Object scopedObject = scopedObjects.scopedInstances.get(name); - if (scopedObject == null) { - scopedObject = objectFactory.getObject(); - scopedObjects.scopedInstances.put(name, scopedObject); - } - return scopedObject; + return scopedObjects.scopedInstances.computeIfAbsent(name, k -> objectFactory.getObject()); } @Override