Consistent instanceof/casting of Class references
This commit is contained in:
parent
7627c38695
commit
ac80ac6f8b
|
@ -458,7 +458,7 @@ public class GroovyBeanDefinitionReader extends AbstractBeanDefinitionReader imp
|
||||||
private GroovyBeanDefinitionWrapper invokeBeanDefiningMethod(String beanName, Object[] args) {
|
private GroovyBeanDefinitionWrapper invokeBeanDefiningMethod(String beanName, Object[] args) {
|
||||||
boolean hasClosureArgument = args[args.length - 1] instanceof Closure;
|
boolean hasClosureArgument = args[args.length - 1] instanceof Closure;
|
||||||
if (args[0] instanceof Class) {
|
if (args[0] instanceof Class) {
|
||||||
Class<?> beanClass = (args[0] instanceof Class ? (Class) args[0] : args[0].getClass());
|
Class<?> beanClass = (args[0] instanceof Class ? (Class<?>) args[0] : args[0].getClass());
|
||||||
if (args.length >= 1) {
|
if (args.length >= 1) {
|
||||||
if (hasClosureArgument) {
|
if (hasClosureArgument) {
|
||||||
if (args.length-1 != 1) {
|
if (args.length-1 != 1) {
|
||||||
|
|
|
@ -37,15 +37,10 @@ import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.Aware;
|
|
||||||
import org.springframework.beans.factory.BeanClassLoaderAware;
|
|
||||||
import org.springframework.beans.factory.BeanDefinitionStoreException;
|
import org.springframework.beans.factory.BeanDefinitionStoreException;
|
||||||
import org.springframework.beans.factory.BeanFactory;
|
|
||||||
import org.springframework.beans.factory.BeanFactoryAware;
|
|
||||||
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
|
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
|
||||||
import org.springframework.beans.factory.config.BeanDefinition;
|
import org.springframework.beans.factory.config.BeanDefinition;
|
||||||
import org.springframework.beans.factory.config.BeanDefinitionHolder;
|
import org.springframework.beans.factory.config.BeanDefinitionHolder;
|
||||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
|
||||||
import org.springframework.beans.factory.parsing.Location;
|
import org.springframework.beans.factory.parsing.Location;
|
||||||
import org.springframework.beans.factory.parsing.Problem;
|
import org.springframework.beans.factory.parsing.Problem;
|
||||||
import org.springframework.beans.factory.parsing.ProblemReporter;
|
import org.springframework.beans.factory.parsing.ProblemReporter;
|
||||||
|
@ -53,8 +48,6 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition;
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionReader;
|
import org.springframework.beans.factory.support.BeanDefinitionReader;
|
||||||
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
|
||||||
import org.springframework.beans.factory.support.BeanNameGenerator;
|
import org.springframework.beans.factory.support.BeanNameGenerator;
|
||||||
import org.springframework.context.EnvironmentAware;
|
|
||||||
import org.springframework.context.ResourceLoaderAware;
|
|
||||||
import org.springframework.context.annotation.ConfigurationCondition.ConfigurationPhase;
|
import org.springframework.context.annotation.ConfigurationCondition.ConfigurationPhase;
|
||||||
import org.springframework.core.NestedIOException;
|
import org.springframework.core.NestedIOException;
|
||||||
import org.springframework.core.annotation.AnnotationAttributes;
|
import org.springframework.core.annotation.AnnotationAttributes;
|
||||||
|
@ -724,7 +717,7 @@ class ConfigurationClassParser {
|
||||||
|
|
||||||
public SourceClass(Object source) {
|
public SourceClass(Object source) {
|
||||||
this.source = source;
|
this.source = source;
|
||||||
if (source instanceof Class<?>) {
|
if (source instanceof Class) {
|
||||||
this.metadata = new StandardAnnotationMetadata((Class<?>) source, true);
|
this.metadata = new StandardAnnotationMetadata((Class<?>) source, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -737,7 +730,7 @@ class ConfigurationClassParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Class<?> loadClass() throws ClassNotFoundException {
|
public Class<?> loadClass() throws ClassNotFoundException {
|
||||||
if (this.source instanceof Class<?>) {
|
if (this.source instanceof Class) {
|
||||||
return (Class<?>) this.source;
|
return (Class<?>) this.source;
|
||||||
}
|
}
|
||||||
String className = ((MetadataReader) this.source).getClassMetadata().getClassName();
|
String className = ((MetadataReader) this.source).getClassMetadata().getClassName();
|
||||||
|
@ -752,7 +745,7 @@ class ConfigurationClassParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConfigurationClass asConfigClass(ConfigurationClass importedBy) throws IOException {
|
public ConfigurationClass asConfigClass(ConfigurationClass importedBy) throws IOException {
|
||||||
if (this.source instanceof Class<?>) {
|
if (this.source instanceof Class) {
|
||||||
return new ConfigurationClass((Class<?>) this.source, importedBy);
|
return new ConfigurationClass((Class<?>) this.source, importedBy);
|
||||||
}
|
}
|
||||||
return new ConfigurationClass((MetadataReader) this.source, importedBy);
|
return new ConfigurationClass((MetadataReader) this.source, importedBy);
|
||||||
|
@ -760,7 +753,7 @@ class ConfigurationClassParser {
|
||||||
|
|
||||||
public Collection<SourceClass> getMemberClasses() throws IOException {
|
public Collection<SourceClass> getMemberClasses() throws IOException {
|
||||||
Object sourceToProcess = this.source;
|
Object sourceToProcess = this.source;
|
||||||
if (sourceToProcess instanceof Class<?>) {
|
if (sourceToProcess instanceof Class) {
|
||||||
Class<?> sourceClass = (Class<?>) sourceToProcess;
|
Class<?> sourceClass = (Class<?>) sourceToProcess;
|
||||||
try {
|
try {
|
||||||
Class<?>[] declaredClasses = sourceClass.getDeclaredClasses();
|
Class<?>[] declaredClasses = sourceClass.getDeclaredClasses();
|
||||||
|
@ -797,7 +790,7 @@ class ConfigurationClassParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SourceClass getSuperClass() throws IOException {
|
public SourceClass getSuperClass() throws IOException {
|
||||||
if (this.source instanceof Class<?>) {
|
if (this.source instanceof Class) {
|
||||||
return asSourceClass(((Class<?>) this.source).getSuperclass());
|
return asSourceClass(((Class<?>) this.source).getSuperclass());
|
||||||
}
|
}
|
||||||
return asSourceClass(((MetadataReader) this.source).getClassMetadata().getSuperClassName());
|
return asSourceClass(((MetadataReader) this.source).getClassMetadata().getSuperClassName());
|
||||||
|
@ -805,7 +798,7 @@ class ConfigurationClassParser {
|
||||||
|
|
||||||
public Set<SourceClass> getInterfaces() throws IOException {
|
public Set<SourceClass> getInterfaces() throws IOException {
|
||||||
Set<SourceClass> result = new LinkedHashSet<>();
|
Set<SourceClass> result = new LinkedHashSet<>();
|
||||||
if (this.source instanceof Class<?>) {
|
if (this.source instanceof Class) {
|
||||||
Class<?> sourceClass = (Class<?>) this.source;
|
Class<?> sourceClass = (Class<?>) this.source;
|
||||||
for (Class<?> ifcClass : sourceClass.getInterfaces()) {
|
for (Class<?> ifcClass : sourceClass.getInterfaces()) {
|
||||||
result.add(asSourceClass(ifcClass));
|
result.add(asSourceClass(ifcClass));
|
||||||
|
@ -847,7 +840,7 @@ class ConfigurationClassParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
private SourceClass getRelated(String className) throws IOException {
|
private SourceClass getRelated(String className) throws IOException {
|
||||||
if (this.source instanceof Class<?>) {
|
if (this.source instanceof Class) {
|
||||||
try {
|
try {
|
||||||
Class<?> clazz = ((Class<?>) this.source).getClassLoader().loadClass(className);
|
Class<?> clazz = ((Class<?>) this.source).getClassLoader().loadClass(className);
|
||||||
return asSourceClass(clazz);
|
return asSourceClass(clazz);
|
||||||
|
|
|
@ -1078,10 +1078,10 @@ public abstract class AnnotationUtils {
|
||||||
boolean nestedAnnotationsAsMap) {
|
boolean nestedAnnotationsAsMap) {
|
||||||
|
|
||||||
if (classValuesAsString) {
|
if (classValuesAsString) {
|
||||||
if (value instanceof Class<?>) {
|
if (value instanceof Class) {
|
||||||
return ((Class<?>) value).getName();
|
return ((Class<?>) value).getName();
|
||||||
}
|
}
|
||||||
else if (value instanceof Class<?>[]) {
|
else if (value instanceof Class[]) {
|
||||||
Class<?>[] clazzArray = (Class<?>[]) value;
|
Class<?>[] clazzArray = (Class<?>[]) value;
|
||||||
String[] classNames = new String[clazzArray.length];
|
String[] classNames = new String[clazzArray.length];
|
||||||
for (int i = 0; i < clazzArray.length; i++) {
|
for (int i = 0; i < clazzArray.length; i++) {
|
||||||
|
|
|
@ -80,10 +80,10 @@ abstract class AnnotationReadingVisitorUtils {
|
||||||
value = convArray;
|
value = convArray;
|
||||||
}
|
}
|
||||||
else if (classValuesAsString) {
|
else if (classValuesAsString) {
|
||||||
if (value instanceof Class<?>) {
|
if (value instanceof Class) {
|
||||||
value = ((Class<?>) value).getName();
|
value = ((Class<?>) value).getName();
|
||||||
}
|
}
|
||||||
else if (value instanceof Class<?>[]) {
|
else if (value instanceof Class[]) {
|
||||||
Class<?>[] clazzArray = (Class<?>[]) value;
|
Class<?>[] clazzArray = (Class<?>[]) value;
|
||||||
String[] newValue = new String[clazzArray.length];
|
String[] newValue = new String[clazzArray.length];
|
||||||
for (int i = 0; i < clazzArray.length; i++) {
|
for (int i = 0; i < clazzArray.length; i++) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2015 the original author or authors.
|
* Copyright 2002-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -48,11 +48,11 @@ public abstract class TypeUtils {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lhsType instanceof Class<?>) {
|
if (lhsType instanceof Class) {
|
||||||
Class<?> lhsClass = (Class<?>) lhsType;
|
Class<?> lhsClass = (Class<?>) lhsType;
|
||||||
|
|
||||||
// just comparing two classes
|
// just comparing two classes
|
||||||
if (rhsType instanceof Class<?>) {
|
if (rhsType instanceof Class) {
|
||||||
return ClassUtils.isAssignable(lhsClass, (Class<?>) rhsType);
|
return ClassUtils.isAssignable(lhsClass, (Class<?>) rhsType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ public abstract class TypeUtils {
|
||||||
Type rhsRaw = ((ParameterizedType) rhsType).getRawType();
|
Type rhsRaw = ((ParameterizedType) rhsType).getRawType();
|
||||||
|
|
||||||
// a parameterized type is always assignable to its raw class type
|
// a parameterized type is always assignable to its raw class type
|
||||||
if (rhsRaw instanceof Class<?>) {
|
if (rhsRaw instanceof Class) {
|
||||||
return ClassUtils.isAssignable(lhsClass, (Class<?>) rhsRaw);
|
return ClassUtils.isAssignable(lhsClass, (Class<?>) rhsRaw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,10 +73,10 @@ public abstract class TypeUtils {
|
||||||
|
|
||||||
// parameterized types are only assignable to other parameterized types and class types
|
// parameterized types are only assignable to other parameterized types and class types
|
||||||
if (lhsType instanceof ParameterizedType) {
|
if (lhsType instanceof ParameterizedType) {
|
||||||
if (rhsType instanceof Class<?>) {
|
if (rhsType instanceof Class) {
|
||||||
Type lhsRaw = ((ParameterizedType) lhsType).getRawType();
|
Type lhsRaw = ((ParameterizedType) lhsType).getRawType();
|
||||||
|
|
||||||
if (lhsRaw instanceof Class<?>) {
|
if (lhsRaw instanceof Class) {
|
||||||
return ClassUtils.isAssignable((Class<?>) lhsRaw, (Class<?>) rhsType);
|
return ClassUtils.isAssignable((Class<?>) lhsRaw, (Class<?>) rhsType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ public abstract class TypeUtils {
|
||||||
if (lhsType instanceof GenericArrayType) {
|
if (lhsType instanceof GenericArrayType) {
|
||||||
Type lhsComponent = ((GenericArrayType) lhsType).getGenericComponentType();
|
Type lhsComponent = ((GenericArrayType) lhsType).getGenericComponentType();
|
||||||
|
|
||||||
if (rhsType instanceof Class<?>) {
|
if (rhsType instanceof Class) {
|
||||||
Class<?> rhsClass = (Class<?>) rhsType;
|
Class<?> rhsClass = (Class<?>) rhsType;
|
||||||
|
|
||||||
if (rhsClass.isArray()) {
|
if (rhsClass.isArray()) {
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class OperatorInstanceof extends Operator {
|
||||||
Object leftValue = left.getValue();
|
Object leftValue = left.getValue();
|
||||||
Object rightValue = right.getValue();
|
Object rightValue = right.getValue();
|
||||||
BooleanTypedValue result = null;
|
BooleanTypedValue result = null;
|
||||||
if (rightValue == null || !(rightValue instanceof Class<?>)) {
|
if (rightValue == null || !(rightValue instanceof Class)) {
|
||||||
throw new SpelEvaluationException(getRightOperand().getStartPosition(),
|
throw new SpelEvaluationException(getRightOperand().getStartPosition(),
|
||||||
SpelMessage.INSTANCEOF_OPERATOR_NEEDS_CLASS_OPERAND,
|
SpelMessage.INSTANCEOF_OPERATOR_NEEDS_CLASS_OPERAND,
|
||||||
(rightValue == null ? "null" : rightValue.getClass().getName()));
|
(rightValue == null ? "null" : rightValue.getClass().getName()));
|
||||||
|
|
|
@ -1464,12 +1464,12 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations {
|
||||||
return System.identityHashCode(proxy);
|
return System.identityHashCode(proxy);
|
||||||
}
|
}
|
||||||
else if (method.getName().equals("unwrap")) {
|
else if (method.getName().equals("unwrap")) {
|
||||||
if (((Class) args[0]).isInstance(proxy)) {
|
if (((Class<?>) args[0]).isInstance(proxy)) {
|
||||||
return proxy;
|
return proxy;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (method.getName().equals("isWrapperFor")) {
|
else if (method.getName().equals("isWrapperFor")) {
|
||||||
if (((Class) args[0]).isInstance(proxy)) {
|
if (((Class<?>) args[0]).isInstance(proxy)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -472,7 +472,7 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B
|
||||||
return extractViewClass((JsonView) conversionHint, conversionHint);
|
return extractViewClass((JsonView) conversionHint, conversionHint);
|
||||||
}
|
}
|
||||||
else if (conversionHint instanceof Class) {
|
else if (conversionHint instanceof Class) {
|
||||||
return (Class) conversionHint;
|
return (Class<?>) conversionHint;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -50,7 +50,7 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
||||||
|
|
||||||
private static final Mono<Object[]> NO_ARGS = Mono.just(new Object[0]);
|
private static final Mono<Object[]> NO_ARGS = Mono.just(new Object[0]);
|
||||||
|
|
||||||
private final static Object NO_VALUE = new Object();
|
private static final Object NO_VALUE = new Object();
|
||||||
|
|
||||||
|
|
||||||
private List<HandlerMethodArgumentResolver> resolvers = new ArrayList<>();
|
private List<HandlerMethodArgumentResolver> resolvers = new ArrayList<>();
|
||||||
|
@ -101,8 +101,8 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
||||||
return Mono.error(ex.getTargetException());
|
return Mono.error(ex.getTargetException());
|
||||||
}
|
}
|
||||||
catch (Throwable ex) {
|
catch (Throwable ex) {
|
||||||
String s = getInvocationErrorMessage(args);
|
String msg = getInvocationErrorMessage(args);
|
||||||
return Mono.error(new IllegalStateException(s));
|
return Mono.error(new IllegalStateException(msg));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,7 +198,7 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi
|
||||||
*/
|
*/
|
||||||
private RequestMappingInfo createRequestMappingInfo(AnnotatedElement element) {
|
private RequestMappingInfo createRequestMappingInfo(AnnotatedElement element) {
|
||||||
RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(element, RequestMapping.class);
|
RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(element, RequestMapping.class);
|
||||||
RequestCondition<?> condition = (element instanceof Class<?> ?
|
RequestCondition<?> condition = (element instanceof Class ?
|
||||||
getCustomTypeCondition((Class<?>) element) : getCustomMethodCondition((Method) element));
|
getCustomTypeCondition((Class<?>) element) : getCustomMethodCondition((Method) element));
|
||||||
return (requestMapping != null ? createRequestMappingInfo(requestMapping, condition) : null);
|
return (requestMapping != null ? createRequestMappingInfo(requestMapping, condition) : null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,7 +171,7 @@ public abstract class AbstractMessageConverterMethodArgumentResolver implements
|
||||||
}
|
}
|
||||||
|
|
||||||
Class<?> contextClass = (param != null ? param.getContainingClass() : null);
|
Class<?> contextClass = (param != null ? param.getContainingClass() : null);
|
||||||
Class<T> targetClass = (targetType instanceof Class<?> ? (Class<T>) targetType : null);
|
Class<T> targetClass = (targetType instanceof Class ? (Class<T>) targetType : null);
|
||||||
if (targetClass == null) {
|
if (targetClass == null) {
|
||||||
ResolvableType resolvableType = (param != null ?
|
ResolvableType resolvableType = (param != null ?
|
||||||
ResolvableType.forMethodParameter(param) : ResolvableType.forType(targetType));
|
ResolvableType.forMethodParameter(param) : ResolvableType.forType(targetType));
|
||||||
|
|
|
@ -203,7 +203,7 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi
|
||||||
*/
|
*/
|
||||||
private RequestMappingInfo createRequestMappingInfo(AnnotatedElement element) {
|
private RequestMappingInfo createRequestMappingInfo(AnnotatedElement element) {
|
||||||
RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(element, RequestMapping.class);
|
RequestMapping requestMapping = AnnotatedElementUtils.findMergedAnnotation(element, RequestMapping.class);
|
||||||
RequestCondition<?> condition = (element instanceof Class<?> ?
|
RequestCondition<?> condition = (element instanceof Class ?
|
||||||
getCustomTypeCondition((Class<?>) element) : getCustomMethodCondition((Method) element));
|
getCustomTypeCondition((Class<?>) element) : getCustomMethodCondition((Method) element));
|
||||||
return (requestMapping != null ? createRequestMappingInfo(requestMapping, condition) : null);
|
return (requestMapping != null ? createRequestMappingInfo(requestMapping, condition) : null);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ import org.springframework.web.util.NestedServletException;
|
||||||
* a method argument that provides access to the response stream.
|
* a method argument that provides access to the response stream.
|
||||||
*
|
*
|
||||||
* @author Rossen Stoyanchev
|
* @author Rossen Stoyanchev
|
||||||
|
* @author Juergen Hoeller
|
||||||
* @since 3.1
|
* @since 3.1
|
||||||
*/
|
*/
|
||||||
public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
||||||
|
@ -81,6 +82,7 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
||||||
initResponseStatus();
|
initResponseStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void initResponseStatus() {
|
private void initResponseStatus() {
|
||||||
ResponseStatus annotation = getMethodAnnotation(ResponseStatus.class);
|
ResponseStatus annotation = getMethodAnnotation(ResponseStatus.class);
|
||||||
if (annotation == null) {
|
if (annotation == null) {
|
||||||
|
@ -92,7 +94,6 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Register {@link HandlerMethodReturnValueHandler} instances to use to
|
* Register {@link HandlerMethodReturnValueHandler} instances to use to
|
||||||
* handle return values.
|
* handle return values.
|
||||||
|
@ -101,8 +102,9 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
||||||
this.returnValueHandlers = returnValueHandlers;
|
this.returnValueHandlers = returnValueHandlers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Invokes the method and handles the return value through one of the
|
* Invoke the method and handle the return value through one of the
|
||||||
* configured {@link HandlerMethodReturnValueHandler}s.
|
* configured {@link HandlerMethodReturnValueHandler}s.
|
||||||
* @param webRequest the current request
|
* @param webRequest the current request
|
||||||
* @param mavContainer the ModelAndViewContainer for this request
|
* @param mavContainer the ModelAndViewContainer for this request
|
||||||
|
@ -151,7 +153,7 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
||||||
else {
|
else {
|
||||||
webRequest.getResponse().setStatus(this.responseStatus.value());
|
webRequest.getResponse().setStatus(this.responseStatus.value());
|
||||||
}
|
}
|
||||||
// to be picked up by the RedirectView
|
// To be picked up by RedirectView
|
||||||
webRequest.getRequest().setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, this.responseStatus);
|
webRequest.getRequest().setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, this.responseStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,6 +216,7 @@ public class ServletInvocableHandlerMethod extends InvocableHandlerMethod {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}, CALLABLE_METHOD);
|
}, CALLABLE_METHOD);
|
||||||
|
|
||||||
setHandlerMethodReturnValueHandlers(ServletInvocableHandlerMethod.this.returnValueHandlers);
|
setHandlerMethodReturnValueHandlers(ServletInvocableHandlerMethod.this.returnValueHandlers);
|
||||||
this.returnType = returnType;
|
this.returnType = returnType;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue