Browse Source

ReflectivePropertyAccessor uses computeIfAbsent for cache computation

Issue: SPR-16882
pull/1848/merge
Juergen Hoeller 7 years ago
parent
commit
e2ccd55d14
  1. 10
      spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java

10
spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java

@ -436,13 +436,11 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { @@ -436,13 +436,11 @@ public class ReflectivePropertyAccessor implements PropertyAccessor {
* Return class methods ordered with non-bridge methods appearing higher.
*/
private Method[] getSortedMethods(Class<?> clazz) {
Method[] methods = this.sortedMethodsCache.get(clazz);
if (methods == null) {
methods = clazz.getMethods();
return this.sortedMethodsCache.computeIfAbsent(clazz, key -> {
Method[] methods = key.getMethods();
Arrays.sort(methods, (o1, o2) -> (o1.isBridge() == o2.isBridge() ? 0 : (o1.isBridge() ? 1 : -1)));
this.sortedMethodsCache.put(clazz, methods);
}
return methods;
return methods;
});
}
/**

Loading…
Cancel
Save