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);
}
};