Add missing @Nullable annotations on parameters

Issue: SPR-15540
This commit is contained in:
Sebastien Deleuze
2017-05-31 12:37:54 +02:00
parent ad2c0f8410
commit b47d713e14
380 changed files with 1085 additions and 732 deletions

View File

@@ -1006,7 +1006,7 @@ public class WebMvcConfigurationSupport implements ApplicationContextAware, Serv
}
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
}
}

View File

@@ -127,7 +127,7 @@ public abstract class AbstractHandlerExceptionResolver implements HandlerExcepti
*/
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) {
@Nullable Object handler, Exception ex) {
if (shouldApplyTo(request, handler)) {
if (this.logger.isDebugEnabled()) {

View File

@@ -39,7 +39,7 @@ public abstract class AbstractHandlerMethodExceptionResolver extends AbstractHan
* passing the bean of the {@code HandlerMethod}. Otherwise returns {@code false}.
*/
@Override
protected boolean shouldApplyTo(HttpServletRequest request, Object handler) {
protected boolean shouldApplyTo(HttpServletRequest request, @Nullable Object handler) {
if (handler == null) {
return super.shouldApplyTo(request, handler);
}
@@ -55,7 +55,7 @@ public abstract class AbstractHandlerMethodExceptionResolver extends AbstractHan
@Override
protected final ModelAndView doResolveException(
HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
HttpServletRequest request, HttpServletResponse response, @Nullable Object handler, Exception ex) {
return doResolveHandlerMethodException(request, response, (HandlerMethod) handler, ex);
}

View File

@@ -22,6 +22,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.core.Ordered;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
@@ -65,9 +66,10 @@ public class HandlerExceptionResolverComposite implements HandlerExceptionResolv
* The first one to return a ModelAndView instance wins. Otherwise {@code null} is returned.
*/
@Override
@Nullable
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response,
Object handler,
@Nullable Object handler,
Exception ex) {
if (resolvers != null) {
for (HandlerExceptionResolver handlerExceptionResolver : resolvers) {

View File

@@ -19,6 +19,7 @@ package org.springframework.web.servlet.handler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.AsyncHandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@@ -46,7 +47,7 @@ public abstract class HandlerInterceptorAdapter implements AsyncHandlerIntercept
*/
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView)
throws Exception {
}

View File

@@ -135,7 +135,7 @@ public final class MappedInterceptor implements HandlerInterceptor {
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
this.interceptor.postHandle(request, response, handler, modelAndView);
}

View File

@@ -176,7 +176,7 @@ public class SimpleMappingExceptionResolver extends AbstractHandlerExceptionReso
*/
@Override
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) {
@Nullable Object handler, Exception ex) {
// Expose ModelAndView for chosen error view.
String viewName = determineViewName(ex, request);

View File

@@ -19,6 +19,7 @@ package org.springframework.web.servlet.handler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.web.context.request.AsyncWebRequestInterceptor;
import org.springframework.web.context.request.WebRequestInterceptor;
@@ -58,7 +59,7 @@ public class WebRequestHandlerInterceptorAdapter implements AsyncHandlerIntercep
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView)
throws Exception {
this.requestInterceptor.postHandle(new DispatcherServletWebRequest(request, response),

View File

@@ -64,7 +64,7 @@ public abstract class AbstractLocaleContextResolver extends AbstractLocaleResolv
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
public void setLocale(HttpServletRequest request, HttpServletResponse response, @Nullable Locale locale) {
setLocaleContext(request, response, (locale != null ? new SimpleLocaleContext(locale) : null));
}

View File

@@ -126,7 +126,7 @@ public class AcceptHeaderLocaleResolver implements LocaleResolver {
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
public void setLocale(HttpServletRequest request, HttpServletResponse response, @Nullable Locale locale) {
throw new UnsupportedOperationException(
"Cannot change HTTP accept header - use a different locale resolution strategy");
}

View File

@@ -225,12 +225,12 @@ public class CookieLocaleResolver extends CookieGenerator implements LocaleConte
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
public void setLocale(HttpServletRequest request, HttpServletResponse response, @Nullable Locale locale) {
setLocaleContext(request, response, (locale != null ? new SimpleLocaleContext(locale) : null));
}
@Override
public void setLocaleContext(HttpServletRequest request, HttpServletResponse response, LocaleContext localeContext) {
public void setLocaleContext(HttpServletRequest request, HttpServletResponse response, @Nullable LocaleContext localeContext) {
Locale locale = null;
TimeZone timeZone = null;
if (localeContext != null) {

View File

@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
import org.springframework.context.i18n.LocaleContext;
import org.springframework.context.i18n.TimeZoneAwareLocaleContext;
import org.springframework.lang.Nullable;
/**
* {@link org.springframework.web.servlet.LocaleResolver} implementation
@@ -92,7 +93,7 @@ public class FixedLocaleResolver extends AbstractLocaleContextResolver {
}
@Override
public void setLocaleContext(HttpServletRequest request, HttpServletResponse response, LocaleContext localeContext) {
public void setLocaleContext(HttpServletRequest request, HttpServletResponse response, @Nullable LocaleContext localeContext) {
throw new UnsupportedOperationException("Cannot change fixed locale - use a different locale resolution strategy");
}

View File

@@ -139,7 +139,7 @@ public class SessionLocaleResolver extends AbstractLocaleContextResolver {
}
@Override
public void setLocaleContext(HttpServletRequest request, HttpServletResponse response, LocaleContext localeContext) {
public void setLocaleContext(HttpServletRequest request, HttpServletResponse response, @Nullable LocaleContext localeContext) {
Locale locale = null;
TimeZone timeZone = null;
if (localeContext != null) {

View File

@@ -262,7 +262,7 @@ public class WebContentInterceptor extends WebContentGenerator implements Handle
*/
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView)
throws Exception {
}

View File

@@ -67,7 +67,7 @@ public class ResponseStatusExceptionResolver extends AbstractHandlerExceptionRes
@Override
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) {
@Nullable Object handler, Exception ex) {
try {
if (ex instanceof ResponseStatusException) {

View File

@@ -361,8 +361,9 @@ public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExce
* Find an {@code @ExceptionHandler} method and invoke it to handle the raised exception.
*/
@Override
@Nullable
protected ModelAndView doResolveHandlerMethodException(HttpServletRequest request,
HttpServletResponse response, HandlerMethod handlerMethod, Exception exception) {
HttpServletResponse response, @Nullable HandlerMethod handlerMethod, Exception exception) {
ServletInvocableHandlerMethod exceptionHandlerMethod = getExceptionHandlerMethod(handlerMethod, exception);
if (exceptionHandlerMethod == null) {

View File

@@ -484,7 +484,7 @@ public class MvcUriComponentsBuilder {
// We may not have all URI var values, expand only what we have
return builder.build().expand(new UriComponents.UriTemplateVariables() {
@Override
public Object getValue(String name) {
public Object getValue(@Nullable String name) {
return uriVars.containsKey(name) ? uriVars.get(name) : UriComponents.UriTemplateVariables.SKIP_VALUE;
}
});

View File

@@ -24,6 +24,7 @@ import org.springframework.core.MethodParameter;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.converter.Converter;
import org.springframework.lang.Nullable;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.MissingPathVariableException;
import org.springframework.web.bind.ServletRequestBindingException;
@@ -100,7 +101,7 @@ public class PathVariableMethodArgumentResolver extends AbstractNamedValueMethod
@Override
@SuppressWarnings("unchecked")
protected void handleResolvedValue(Object arg, String name, MethodParameter parameter,
ModelAndViewContainer mavContainer, NativeWebRequest request) {
@Nullable ModelAndViewContainer mavContainer, NativeWebRequest request) {
String key = View.PATH_VARIABLES;
int scope = RequestAttributes.SCOPE_REQUEST;

View File

@@ -21,6 +21,7 @@ import java.lang.reflect.Type;
import org.springframework.core.MethodParameter;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.lang.Nullable;
/**
* A convenient starting point for implementing
@@ -39,7 +40,8 @@ public abstract class RequestBodyAdviceAdapter implements RequestBodyAdvice {
* The default implementation returns the body that was passed in.
*/
@Override
public Object handleEmptyBody(Object body, HttpInputMessage inputMessage,
@Nullable
public Object handleEmptyBody(@Nullable Object body, HttpInputMessage inputMessage,
MethodParameter parameter, Type targetType,
Class<? extends HttpMessageConverter<?>> converterType) {

View File

@@ -28,6 +28,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.lang.Nullable;
import org.springframework.util.CollectionUtils;
import org.springframework.web.method.ControllerAdviceBean;
@@ -95,7 +96,7 @@ class RequestResponseBodyAdviceChain implements RequestBodyAdvice, ResponseBodyA
}
@Override
public Object handleEmptyBody(Object body, HttpInputMessage inputMessage, MethodParameter parameter,
public Object handleEmptyBody(@Nullable Object body, HttpInputMessage inputMessage, MethodParameter parameter,
Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {
for (RequestBodyAdvice advice : getMatchingAdvice(parameter, RequestBodyAdvice.class)) {

View File

@@ -29,6 +29,7 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.http.server.ServletServerHttpRequest;
import org.springframework.http.server.ServletServerHttpResponse;
import org.springframework.lang.Nullable;
import org.springframework.validation.BindingResult;
import org.springframework.web.HttpMediaTypeNotAcceptableException;
import org.springframework.web.HttpMediaTypeNotSupportedException;
@@ -141,7 +142,7 @@ public class RequestResponseBodyMethodProcessor extends AbstractMessageConverter
}
@Override
protected <T> Object readWithMessageConverters(NativeWebRequest webRequest, MethodParameter parameter,
protected <T> Object readWithMessageConverters(NativeWebRequest webRequest, @Nullable MethodParameter parameter,
Type paramType) throws IOException, HttpMediaTypeNotSupportedException, HttpMessageNotReadableException {
HttpServletRequest servletRequest = webRequest.getNativeRequest(HttpServletRequest.class);

View File

@@ -18,6 +18,7 @@ package org.springframework.web.servlet.mvc.method.annotation;
import java.util.List;
import org.springframework.lang.Nullable;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.support.WebBindingInitializer;
import org.springframework.web.context.request.NativeWebRequest;
@@ -45,7 +46,7 @@ public class ServletRequestDataBinderFactory extends InitBinderDataBinderFactory
* Returns an instance of {@link ExtendedServletRequestDataBinder}.
*/
@Override
protected ServletRequestDataBinder createBinderInstance(Object target, String objectName, NativeWebRequest request) {
protected ServletRequestDataBinder createBinderInstance(@Nullable Object target, String objectName, NativeWebRequest request) {
return new ExtendedServletRequestDataBinder(target, objectName);
}

View File

@@ -103,7 +103,7 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes
@Override
protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) {
@Nullable Object handler, Exception ex) {
try {
if (ex instanceof HttpRequestMethodNotSupportedException) {

View File

@@ -61,10 +61,10 @@ import org.springframework.web.servlet.FlashMap;
public interface RedirectAttributes extends Model {
@Override
RedirectAttributes addAttribute(String attributeName, Object attributeValue);
RedirectAttributes addAttribute(String attributeName, @Nullable Object attributeValue);
@Override
RedirectAttributes addAttribute(Object attributeValue);
RedirectAttributes addAttribute(@Nullable Object attributeValue);
@Override
RedirectAttributes addAllAttributes(Collection<?> attributeValues);

View File

@@ -19,6 +19,7 @@ package org.springframework.web.servlet.mvc.support;
import java.util.Collection;
import java.util.Map;
import org.springframework.lang.Nullable;
import org.springframework.ui.ModelMap;
import org.springframework.validation.DataBinder;
@@ -67,7 +68,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* <p>Formats the attribute value as a String before adding it.
*/
@Override
public RedirectAttributesModelMap addAttribute(String attributeName, Object attributeValue) {
public RedirectAttributesModelMap addAttribute(String attributeName, @Nullable Object attributeValue) {
super.addAttribute(attributeName, formatValue(attributeValue));
return this;
}
@@ -84,7 +85,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
* <p>Formats the attribute value as a String before adding it.
*/
@Override
public RedirectAttributesModelMap addAttribute(Object attributeValue) {
public RedirectAttributesModelMap addAttribute(@Nullable Object attributeValue) {
super.addAttribute(attributeValue);
return this;
}
@@ -157,7 +158,7 @@ public class RedirectAttributesModelMap extends ModelMap implements RedirectAttr
}
@Override
public RedirectAttributes addFlashAttribute(String attributeName, Object attributeValue) {
public RedirectAttributes addFlashAttribute(String attributeName, @Nullable Object attributeValue) {
this.flashAttributes.addAttribute(attributeName, attributeValue);
return this;
}

View File

@@ -54,7 +54,7 @@ public abstract class AbstractCachingViewResolver extends WebApplicationObjectSu
return null;
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
public void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
}
};

View File

@@ -294,7 +294,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement
* @see #renderMergedOutputModel
*/
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
public void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
if (logger.isTraceEnabled()) {
logger.trace("Rendering view with name '" + this.beanName + "' with model " + model +
" and static attributes " + this.staticAttributes);

View File

@@ -359,7 +359,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
public void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
response.setStatus(HttpServletResponse.SC_NOT_ACCEPTABLE);
}
};

View File

@@ -39,6 +39,7 @@ import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.context.support.ApplicationObjectSupport;
import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;
import org.springframework.lang.Nullable;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.context.WebApplicationContext;
@@ -308,7 +309,7 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView)
throws ServletException {
if (request.getAttribute("test2x") != null) {
@@ -356,7 +357,7 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
@Override
public void postHandle(
HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView)
throws ServletException {
if (request.getParameter("noView") != null) {
@@ -395,12 +396,12 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
}
@Override
public void postHandle(WebRequest request, ModelMap model) throws Exception {
public void postHandle(WebRequest request, @Nullable ModelMap model) throws Exception {
request.setAttribute("test3x", "test3x", WebRequest.SCOPE_REQUEST);
}
@Override
public void afterCompletion(WebRequest request, Exception ex) throws Exception {
public void afterCompletion(WebRequest request, @Nullable Exception ex) throws Exception {
request.setAttribute("test3y", "test3y", WebRequest.SCOPE_REQUEST);
}
}

View File

@@ -29,6 +29,7 @@ import org.springframework.core.io.Resource;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.ResourceHttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.util.AntPathMatcher;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.web.bind.support.ConfigurableWebBindingInitializer;
@@ -254,7 +255,7 @@ class TestMessageCodesResolver implements MessageCodesResolver {
@Override
@SuppressWarnings("rawtypes")
public String[] resolveMessageCodes(String errorCode, String objectName, String field, Class fieldType) {
public String[] resolveMessageCodes(String errorCode, String objectName, String field, @Nullable Class fieldType) {
return new String[] { "test.foo.bar" };
}

View File

@@ -64,6 +64,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockRequestDispatcher;
@@ -981,7 +982,7 @@ public class MvcNamespaceTests {
}
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
this.validatorInvoked = true;
}
}

View File

@@ -25,6 +25,7 @@ import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.ui.ModelMap;
@@ -190,11 +191,11 @@ public class InterceptorRegistryTests {
}
@Override
public void postHandle(WebRequest request, ModelMap model) throws Exception {
public void postHandle(WebRequest request, @Nullable ModelMap model) throws Exception {
}
@Override
public void afterCompletion(WebRequest request, Exception ex) throws Exception {
public void afterCompletion(WebRequest request, @Nullable Exception ex) throws Exception {
}
}

View File

@@ -36,6 +36,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockServletContext;
import org.springframework.scheduling.concurrent.ConcurrentTaskExecutor;
@@ -354,7 +355,7 @@ public class WebMvcConfigurationSupportExtensionTests {
public Validator getValidator() {
return new Validator() {
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
errors.reject("invalid");
}
@Override

View File

@@ -26,6 +26,7 @@ import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreato
import org.springframework.aop.interceptor.SimpleTraceInterceptor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockServletConfig;
@@ -81,7 +82,7 @@ public class CglibProxyControllerTests {
private void initServlet(final Class<?> controllerClass) throws ServletException {
servlet = new DispatcherServlet() {
@Override
protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) {
protected WebApplicationContext createWebApplicationContext(@Nullable WebApplicationContext parent) {
GenericWebApplicationContext wac = new GenericWebApplicationContext();
wac.registerBeanDefinition("controller", new RootBeanDefinition(controllerClass));
DefaultAdvisorAutoProxyCreator autoProxyCreator = new DefaultAdvisorAutoProxyCreator();

View File

@@ -26,6 +26,7 @@ import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreato
import org.springframework.aop.interceptor.SimpleTraceInterceptor;
import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockServletConfig;
@@ -81,7 +82,7 @@ public class JdkProxyControllerTests {
private void initServlet(final Class<?> controllerclass) throws ServletException {
servlet = new DispatcherServlet() {
@Override
protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) {
protected WebApplicationContext createWebApplicationContext(@Nullable WebApplicationContext parent) {
GenericWebApplicationContext wac = new GenericWebApplicationContext();
wac.registerBeanDefinition("controller", new RootBeanDefinition(controllerclass));
DefaultAdvisorAutoProxyCreator autoProxyCreator = new DefaultAdvisorAutoProxyCreator();

View File

@@ -22,6 +22,7 @@ import org.junit.After;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockServletConfig;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.GenericWebApplicationContext;
@@ -76,7 +77,7 @@ public abstract class AbstractServletHandlerMethodTests {
servlet = new DispatcherServlet() {
@Override
protected WebApplicationContext createWebApplicationContext(WebApplicationContext parent) {
protected WebApplicationContext createWebApplicationContext(@Nullable WebApplicationContext parent) {
for (Class<?> clazz : controllerClasses) {
wac.registerBeanDefinition(clazz.getSimpleName(), new RootBeanDefinition(clazz));
}

View File

@@ -32,6 +32,7 @@ import org.springframework.aop.support.StaticMethodMatcherPointcut;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.stereotype.Controller;
@@ -121,7 +122,7 @@ public class HandlerMethodAnnotationDetectionTests {
class TestPointcut extends StaticMethodMatcherPointcut {
@Override
public boolean matches(Method method, Class<?> clazz) {
public boolean matches(Method method, @Nullable Class<?> clazz) {
return method.getName().equals("hashCode");
}
}
@@ -527,7 +528,7 @@ public class HandlerMethodAnnotationDetectionTests {
private static StaticMethodMatcherPointcut getControllerPointcut() {
return new StaticMethodMatcherPointcut() {
@Override
public boolean matches(Method method, Class<?> targetClass) {
public boolean matches(Method method, @Nullable Class<?> targetClass) {
return ((AnnotationUtils.findAnnotation(targetClass, Controller.class) != null) ||
(AnnotationUtils.findAnnotation(targetClass, RequestMapping.class) != null));
}

View File

@@ -34,6 +34,7 @@ import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@@ -261,7 +262,7 @@ public class HttpEntityMethodProcessorTests {
private final class ValidatingBinderFactory implements WebDataBinderFactory {
@Override
public WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName) {
public WebDataBinder createBinder(NativeWebRequest webRequest, @Nullable Object target, String objectName) {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.afterPropertiesSet();
WebDataBinder dataBinder = new WebDataBinder(target, objectName);

View File

@@ -47,6 +47,7 @@ import org.springframework.http.CacheControl;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockMultipartFile;
@@ -443,7 +444,7 @@ public class RequestMappingHandlerAdapterIntegrationTests {
}
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
errors.reject("error");
}
}

View File

@@ -35,6 +35,7 @@ import org.springframework.core.annotation.SynthesizingMethodParameter;
import org.springframework.http.HttpInputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockMultipartFile;
@@ -557,7 +558,7 @@ public class RequestPartMethodArgumentResolverTests {
private final class ValidatingBinderFactory implements WebDataBinderFactory {
@Override
public WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName) throws Exception {
public WebDataBinder createBinder(NativeWebRequest webRequest, @Nullable Object target, String objectName) throws Exception {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.afterPropertiesSet();
WebDataBinder dataBinder = new WebDataBinder(target, objectName);

View File

@@ -36,6 +36,7 @@ import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
@@ -403,7 +404,7 @@ public class RequestResponseBodyMethodProcessorMockTests {
private final class ValidatingBinderFactory implements WebDataBinderFactory {
@Override
public WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName) throws Exception {
public WebDataBinder createBinder(NativeWebRequest webRequest, @Nullable Object target, String objectName) throws Exception {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.afterPropertiesSet();
WebDataBinder dataBinder = new WebDataBinder(target, objectName);

View File

@@ -50,6 +50,7 @@ import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.util.MultiValueMap;
@@ -806,7 +807,7 @@ public class RequestResponseBodyMethodProcessorTests {
private final class ValidatingBinderFactory implements WebDataBinderFactory {
@Override
public WebDataBinder createBinder(NativeWebRequest request, Object target, String objectName) {
public WebDataBinder createBinder(NativeWebRequest request, @Nullable Object target, String objectName) {
LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
validator.afterPropertiesSet();
WebDataBinder dataBinder = new WebDataBinder(target, objectName);
@@ -1013,7 +1014,7 @@ public class RequestResponseBodyMethodProcessorTests {
}
@Override
public Object handleEmptyBody(Object body, HttpInputMessage inputMessage, MethodParameter parameter,
public Object handleEmptyBody(@Nullable Object body, HttpInputMessage inputMessage, MethodParameter parameter,
Type targetType, Class<? extends HttpMessageConverter<?>> converterType) {
return "default value for empty body";

View File

@@ -84,6 +84,7 @@ import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.xml.MarshallingHttpMessageConverter;
import org.springframework.lang.Nullable;
import org.springframework.mock.web.test.MockHttpServletRequest;
import org.springframework.mock.web.test.MockHttpServletResponse;
import org.springframework.mock.web.test.MockMultipartFile;
@@ -2489,7 +2490,7 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
@Override
@SuppressWarnings({"unchecked", "deprecation", "rawtypes"})
public void render(Map model, HttpServletRequest request, HttpServletResponse response)
public void render(@Nullable Map model, HttpServletRequest request, HttpServletResponse response)
throws Exception {
TestBean tb = (TestBean) model.get("testBean");
if (tb == null) {
@@ -2534,7 +2535,7 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
return null;
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
public void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) {
request.setAttribute("viewName", viewName);
request.getSession().setAttribute("model", model);
}
@@ -2756,12 +2757,12 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
public static class NotReadableMessageConverter implements HttpMessageConverter<Object> {
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
public boolean canRead(Class<?> clazz, @Nullable MediaType mediaType) {
return true;
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
public boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType) {
return true;
}
@@ -2777,7 +2778,7 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
}
@Override
public void write(Object o, MediaType contentType, HttpOutputMessage outputMessage)
public void write(Object o, @Nullable MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
throw new UnsupportedOperationException("Not implemented");
}
@@ -2792,12 +2793,12 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
public boolean canRead(Class<?> clazz, @Nullable MediaType mediaType) {
return supportedMediaTypes.contains(mediaType);
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
public boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType) {
return supportedMediaTypes.contains(mediaType);
}
@@ -2813,7 +2814,7 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
}
@Override
public void write(Object o, MediaType contentType, HttpOutputMessage outputMessage)
public void write(Object o, @Nullable MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
outputMessage.getHeaders().setContentType(contentType);
outputMessage.getBody(); // force a header write
@@ -2924,7 +2925,7 @@ public class ServletAnnotationControllerHandlerMethodTests extends AbstractServl
return "text/html";
}
@Override
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)
public void render(@Nullable Map<String, ?> model, HttpServletRequest request, HttpServletResponse response)
throws Exception {
response.getWriter().write("myValue");
}