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

@@ -170,7 +170,7 @@ public abstract class AbstractMessageConverter implements SmartMessageConverter
}
@Override
public final Object fromMessage(Message<?> message, Class<?> targetClass, Object conversionHint) {
public final Object fromMessage(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
if (!canConvertFrom(message, targetClass)) {
return null;
}
@@ -182,12 +182,12 @@ public abstract class AbstractMessageConverter implements SmartMessageConverter
}
@Override
public final Message<?> toMessage(Object payload, MessageHeaders headers) {
public final Message<?> toMessage(Object payload, @Nullable MessageHeaders headers) {
return toMessage(payload, headers, null);
}
@Override
public final Message<?> toMessage(Object payload, MessageHeaders headers, Object conversionHint) {
public final Message<?> toMessage(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
if (!canConvertTo(payload, headers)) {
return null;
}

View File

@@ -16,6 +16,7 @@
package org.springframework.messaging.converter;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.util.MimeTypeUtils;
@@ -40,12 +41,14 @@ public class ByteArrayMessageConverter extends AbstractMessageConverter {
}
@Override
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
@Nullable
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
return message.getPayload();
}
@Override
protected Object convertToInternal(Object payload, MessageHeaders headers, Object conversionHint) {
@Nullable
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
return payload;
}

View File

@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.util.Assert;
@@ -61,7 +62,7 @@ public class CompositeMessageConverter implements SmartMessageConverter {
}
@Override
public Object fromMessage(Message<?> message, Class<?> targetClass, Object conversionHint) {
public Object fromMessage(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
for (MessageConverter converter : getConverters()) {
Object result = (converter instanceof SmartMessageConverter ?
((SmartMessageConverter) converter).fromMessage(message, targetClass, conversionHint) :
@@ -74,7 +75,7 @@ public class CompositeMessageConverter implements SmartMessageConverter {
}
@Override
public Message<?> toMessage(Object payload, MessageHeaders headers) {
public Message<?> toMessage(Object payload, @Nullable MessageHeaders headers) {
for (MessageConverter converter : getConverters()) {
Message<?> result = converter.toMessage(payload, headers);
if (result != null) {
@@ -85,7 +86,7 @@ public class CompositeMessageConverter implements SmartMessageConverter {
}
@Override
public Message<?> toMessage(Object payload, MessageHeaders headers, Object conversionHint) {
public Message<?> toMessage(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
for (MessageConverter converter : getConverters()) {
Message<?> result = (converter instanceof SmartMessageConverter ?
((SmartMessageConverter) converter).toMessage(payload, headers, conversionHint) :

View File

@@ -199,7 +199,7 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter {
}
@Override
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
JavaType javaType = this.objectMapper.constructType(targetClass);
Object payload = message.getPayload();
Class<?> view = getSerializationView(conversionHint);
@@ -228,7 +228,8 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter {
}
@Override
protected Object convertToInternal(Object payload, MessageHeaders headers, Object conversionHint) {
@Nullable
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
try {
Class<?> view = getSerializationView(conversionHint);
if (byte[].class == getSerializedPayloadClass()) {

View File

@@ -28,6 +28,7 @@ import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.springframework.beans.TypeMismatchException;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.oxm.Marshaller;
@@ -134,7 +135,8 @@ public class MarshallingMessageConverter extends AbstractMessageConverter {
}
@Override
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
@Nullable
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
Assert.notNull(this.unmarshaller, "Property 'unmarshaller' is required");
try {
Source source = getSource(message.getPayload());
@@ -159,7 +161,8 @@ public class MarshallingMessageConverter extends AbstractMessageConverter {
}
@Override
protected Object convertToInternal(Object payload, MessageHeaders headers, Object conversionHint) {
@Nullable
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
Assert.notNull(this.marshaller, "Property 'marshaller' is required");
try {
if (byte[].class == getSerializedPayloadClass()) {

View File

@@ -16,6 +16,7 @@
package org.springframework.messaging.converter;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.support.MessageBuilder;
@@ -44,7 +45,7 @@ public class SimpleMessageConverter implements MessageConverter {
}
@Override
public Message<?> toMessage(Object payload, MessageHeaders headers) {
public Message<?> toMessage(Object payload, @Nullable MessageHeaders headers) {
if (payload == null) {
return null;
}

View File

@@ -19,6 +19,7 @@ package org.springframework.messaging.converter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.util.MimeType;
@@ -51,14 +52,14 @@ public class StringMessageConverter extends AbstractMessageConverter {
}
@Override
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
Charset charset = getContentTypeCharset(getMimeType(message.getHeaders()));
Object payload = message.getPayload();
return (payload instanceof String ? payload : new String((byte[]) payload, charset));
}
@Override
protected Object convertToInternal(Object payload, MessageHeaders headers, Object conversionHint) {
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
if (byte[].class == getSerializedPayloadClass()) {
Charset charset = getContentTypeCharset(getMimeType(headers));
payload = ((String) payload).getBytes(charset);

View File

@@ -18,6 +18,7 @@ package org.springframework.messaging.simp;
import java.util.Map;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.MessageDeliveryException;
@@ -202,22 +203,22 @@ public class SimpMessagingTemplate extends AbstractMessageSendingTemplate<String
}
@Override
public void convertAndSendToUser(String user, String destination, Object payload,
Map<String, Object> headers) throws MessagingException {
public void convertAndSendToUser(String user, String destination, @Nullable Object payload,
@Nullable Map<String, Object> headers) throws MessagingException {
convertAndSendToUser(user, destination, payload, headers, null);
}
@Override
public void convertAndSendToUser(String user, String destination, Object payload,
public void convertAndSendToUser(String user, String destination, @Nullable Object payload,
MessagePostProcessor postProcessor) throws MessagingException {
convertAndSendToUser(user, destination, payload, null, postProcessor);
}
@Override
public void convertAndSendToUser(String user, String destination, Object payload, Map<String, Object> headers,
MessagePostProcessor postProcessor) throws MessagingException {
public void convertAndSendToUser(String user, String destination, Object payload, @Nullable Map<String, Object> headers,
@Nullable MessagePostProcessor postProcessor) throws MessagingException {
Assert.notNull(user, "User must not be null");
user = StringUtils.replace(user, "/", "%2F");
@@ -238,7 +239,7 @@ public class SimpMessagingTemplate extends AbstractMessageSendingTemplate<String
* instance is also returned without changes.
*/
@Override
protected Map<String, Object> processHeadersToSend(Map<String, Object> headers) {
protected Map<String, Object> processHeadersToSend(@Nullable Map<String, Object> headers) {
if (headers == null) {
SimpMessageHeaderAccessor headerAccessor = SimpMessageHeaderAccessor.create(SimpMessageType.MESSAGE);
initHeaders(headerAccessor);

View File

@@ -436,7 +436,7 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
return false;
}
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
}
};
}

View File

@@ -18,6 +18,8 @@ package org.springframework.messaging.simp.stomp;
import java.lang.reflect.Type;
import org.springframework.lang.Nullable;
/**
* Abstract adapter class for {@link StompSessionHandler} with mostly empty
* implementation methods except for {@link #getPayloadType} which returns String
@@ -48,7 +50,7 @@ public abstract class StompSessionHandlerAdapter implements StompSessionHandler
* This implementation is empty.
*/
@Override
public void handleFrame(StompHeaders headers, Object payload) {
public void handleFrame(StompHeaders headers, @Nullable Object payload) {
}
/**

View File

@@ -24,6 +24,7 @@ import java.util.Map;
import org.junit.Test;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.simp.SimpMessageHeaderAccessor;
@@ -156,12 +157,12 @@ public class MessageConverterTests {
}
@Override
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, Object conversionHint) {
protected Object convertFromInternal(Message<?> message, Class<?> targetClass, @Nullable Object conversionHint) {
return "success-from";
}
@Override
protected Object convertToInternal(Object payload, MessageHeaders headers, Object conversionHint) {
protected Object convertToInternal(Object payload, @Nullable MessageHeaders headers, @Nullable Object conversionHint) {
return "success-to";
}
}

View File

@@ -33,6 +33,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.context.support.StaticApplicationContext;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.MessageHeaders;
@@ -511,7 +512,7 @@ public class SimpAnnotationMethodMessageHandlerTests {
}
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
String value = (String) target;
if (invalidValue.equals(value)) {
errors.reject("invalid value '"+invalidValue+"'");

View File

@@ -31,6 +31,7 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.StaticApplicationContext;
import org.springframework.lang.Nullable;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHandler;
import org.springframework.messaging.converter.ByteArrayMessageConverter;
@@ -562,7 +563,7 @@ public class MessageBrokerConfigurationTests {
}
@Override
public void validate(Object target, Errors errors) {
public void validate(@Nullable Object target, Errors errors) {
}
}

View File

@@ -32,6 +32,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.springframework.lang.Nullable;
import org.springframework.messaging.converter.StringMessageConverter;
import org.springframework.messaging.simp.stomp.StompSession.Subscription;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
@@ -139,7 +140,7 @@ public class ReactorNettyTcpStompClientTests {
}
@Override
public void handleFrame(StompHeaders headers, Object payload) {
public void handleFrame(StompHeaders headers, @Nullable Object payload) {
logger.error("STOMP error frame " + headers + " payload=" + payload);
}
@@ -178,7 +179,7 @@ public class ReactorNettyTcpStompClientTests {
return String.class;
}
@Override
public void handleFrame(StompHeaders headers, Object payload) {
public void handleFrame(StompHeaders headers, @Nullable Object payload) {
received.add((String) payload);
}
});