diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java index d88c58aa3b..d77e714b67 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java @@ -479,14 +479,8 @@ public class AdvisedSupport extends ProxyConfig implements Advised { * @return a List of MethodInterceptors (may also include InterceptorAndDynamicMethodMatchers) */ public List getInterceptorsAndDynamicInterceptionAdvice(Method method, @Nullable Class targetClass) { - MethodCacheKey cacheKey = new MethodCacheKey(method); - List cached = this.methodCache.get(cacheKey); - if (cached == null) { - cached = this.advisorChainFactory.getInterceptorsAndDynamicInterceptionAdvice( - this, method, targetClass); - this.methodCache.put(cacheKey, cached); - } - return cached; + return this.methodCache.computeIfAbsent(new MethodCacheKey(method), k -> + this.advisorChainFactory.getInterceptorsAndDynamicInterceptionAdvice(this, method, targetClass)); } /** diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java index 695d82c1b3..0b30e76eab 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -233,11 +233,7 @@ public final class SpelCompiler implements Opcodes { if (compiler == null) { // Full lock now since we're creating a child ClassLoader synchronized (compilers) { - compiler = compilers.get(clToUse); - if (compiler == null) { - compiler = new SpelCompiler(clToUse); - compilers.put(clToUse, compiler); - } + return compilers.computeIfAbsent(clToUse, SpelCompiler::new); } } return compiler;