diff --git a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java index dbf574ef9a0..2416ebec897 100644 --- a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java @@ -489,6 +489,9 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA @Override @Nullable public Class getPropertyType(String propertyName) throws BeansException { + if (this.wrappedObject == null) { + return null; + } try { PropertyHandler ph = getPropertyHandler(propertyName); if (ph != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java b/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java index ba03856d7fb..61b1a11b07f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java +++ b/spring-beans/src/main/java/org/springframework/beans/BeanWrapperImpl.java @@ -192,7 +192,7 @@ public class BeanWrapperImpl extends AbstractNestablePropertyAccessor implements @Override @Nullable - protected BeanPropertyHandler getLocalPropertyHandler(String propertyName) { + protected PropertyHandler getLocalPropertyHandler(String propertyName) { PropertyDescriptor pd = getCachedIntrospectionResults().getPropertyDescriptor(propertyName); return (pd != null ? new BeanPropertyHandler((GenericTypeAwarePropertyDescriptor) pd) : null); } diff --git a/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java b/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java index 53b0efe01c6..7c620212e69 100644 --- a/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/DirectFieldAccessor.java @@ -73,7 +73,7 @@ public class DirectFieldAccessor extends AbstractNestablePropertyAccessor { @Override @Nullable - protected FieldPropertyHandler getLocalPropertyHandler(String propertyName) { + protected PropertyHandler getLocalPropertyHandler(String propertyName) { FieldPropertyHandler propertyHandler = this.fieldMap.get(propertyName); if (propertyHandler == null) { Field field = ReflectionUtils.findField(getWrappedClass(), propertyName); diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheEvaluationContextFactory.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheEvaluationContextFactory.java index 5a037faf7a2..67e8743a431 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheEvaluationContextFactory.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheEvaluationContextFactory.java @@ -39,10 +39,12 @@ class CacheEvaluationContextFactory { @Nullable private Supplier parameterNameDiscoverer; + CacheEvaluationContextFactory(StandardEvaluationContext originalContext) { this.originalContext = originalContext; } + public void setParameterNameDiscoverer(Supplier parameterNameDiscoverer) { this.parameterNameDiscoverer = parameterNameDiscoverer; } @@ -54,6 +56,7 @@ class CacheEvaluationContextFactory { return this.parameterNameDiscoverer.get(); } + /** * Creates a {@link CacheEvaluationContext} for the specified operation. * @param rootObject the {@code root} object to use for the context diff --git a/spring-core/src/test/java/org/springframework/core/MethodParameterTests.java b/spring-core/src/test/java/org/springframework/core/MethodParameterTests.java index 3ec6fec5885..2571b711cab 100644 --- a/spring-core/src/test/java/org/springframework/core/MethodParameterTests.java +++ b/spring-core/src/test/java/org/springframework/core/MethodParameterTests.java @@ -237,7 +237,8 @@ class MethodParameterTests { assertThat(m3.getTypeIndexForCurrentLevel()).isEqualTo(3); } - public int method(String p1, long p2) { + + public int method(String str, long lng) { return 42; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java index 14489720374..cecc6e7f537 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java @@ -636,14 +636,15 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap HandlerMethod handlerMethod = createHandlerMethod(handler, method); validateMethodMapping(handlerMethod, mapping); - Set directPaths = AbstractHandlerMethodMapping.this.getDirectPaths(mapping); + Set directPaths = getDirectPaths(mapping); for (String path : directPaths) { this.pathLookup.add(path, mapping); } String name = null; - if (getNamingStrategy() != null) { - name = getNamingStrategy().getName(handlerMethod, mapping); + HandlerMethodMappingNamingStrategy namingStrategy = getNamingStrategy(); + if (namingStrategy != null) { + name = namingStrategy.getName(handlerMethod, mapping); addMappingName(name, handlerMethod); }