Browse Source

Use computeIfAbsent in SpelCompiler and AdvisedSupport

See gh-26028
pull/31115/head
hzmpay 4 years ago committed by Stephane Nicoll
parent
commit
cde476f90e
  1. 10
      spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java
  2. 6
      spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java

10
spring-aop/src/main/java/org/springframework/aop/framework/AdvisedSupport.java

@ -479,14 +479,8 @@ public class AdvisedSupport extends ProxyConfig implements Advised { @@ -479,14 +479,8 @@ public class AdvisedSupport extends ProxyConfig implements Advised {
* @return a List of MethodInterceptors (may also include InterceptorAndDynamicMethodMatchers)
*/
public List<Object> getInterceptorsAndDynamicInterceptionAdvice(Method method, @Nullable Class<?> targetClass) {
MethodCacheKey cacheKey = new MethodCacheKey(method);
List<Object> 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));
}
/**

6
spring-expression/src/main/java/org/springframework/expression/spel/standard/SpelCompiler.java

@ -233,11 +233,7 @@ public final class SpelCompiler implements Opcodes { @@ -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;

Loading…
Cancel
Save