Skip to content

Commit 65df35b

Browse files
garyrussellartembilan
authored andcommitted
Sonar fixes
Critical smells `o.s.i.m*`.
1 parent 3f48d20 commit 65df35b

File tree

8 files changed

+40
-13
lines changed

8 files changed

+40
-13
lines changed

spring-integration-core/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,7 @@ private Object doSendAndReceive(Object object, boolean shouldConvert) {
507507
else {
508508
requestMessage = (object instanceof Message<?>)
509509
? (Message<?>) object : this.requestMapper.toMessage(object);
510+
Assert.state(requestMessage != null, () -> "request mapper resulted in no message for " + object);
510511
requestMessage = this.historyWritingPostProcessor.postProcessMessage(requestMessage);
511512
reply = this.messagingTemplate.sendAndReceive(requestChannel, requestMessage);
512513
if (reply instanceof ErrorMessage) {

spring-integration-core/src/main/java/org/springframework/integration/mapping/BytesMessageMapper.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616

1717
package org.springframework.integration.mapping;
1818

19+
import java.util.Map;
20+
21+
import org.springframework.lang.NonNull;
22+
import org.springframework.lang.Nullable;
23+
import org.springframework.messaging.Message;
24+
1925
/**
2026
* An {@link OutboundMessageMapper} and {@link InboundMessageMapper} that
2127
* maps to/from {@code byte[]}.
@@ -26,4 +32,14 @@
2632
*/
2733
public interface BytesMessageMapper extends InboundMessageMapper<byte[]>, OutboundMessageMapper<byte[]> {
2834

35+
@Override
36+
@NonNull // override
37+
default Message<?> toMessage(byte[] object) {
38+
return toMessage(object, null);
39+
}
40+
41+
@Override
42+
@NonNull // override
43+
Message<?> toMessage(byte[] bytes, @Nullable Map<String, Object> headers);
44+
2945
}

spring-integration-core/src/main/java/org/springframework/integration/mapping/InboundMessageMapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
*
2727
* @author Mark Fisher
2828
* @author Artem Bilan
29+
* @author Gary Russell
2930
*/
3031
@FunctionalInterface
3132
public interface InboundMessageMapper<T> {
@@ -36,7 +37,8 @@ public interface InboundMessageMapper<T> {
3637
* @return the message as a result of mapping
3738
* @throws Exception the exception thrown by the underlying mapper implementation
3839
*/
39-
default Message<?> toMessage(T object) throws Exception {
40+
@Nullable
41+
default Message<?> toMessage(T object) throws Exception { // NOSONAR - TODO remove Exception in 5.2
4042
return toMessage(object, null);
4143
}
4244

@@ -50,6 +52,6 @@ default Message<?> toMessage(T object) throws Exception {
5052
* @since 5.0
5153
*/
5254
@Nullable
53-
Message<?> toMessage(T object, @Nullable Map<String, Object> headers) throws Exception;
55+
Message<?> toMessage(T object, @Nullable Map<String, Object> headers) throws Exception; // NOSONAR
5456

5557
}

spring-integration-core/src/main/java/org/springframework/integration/support/json/EmbeddedJsonHeadersMessageMapper.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.integration.support.json;
1818

19+
import java.io.IOException;
1920
import java.nio.ByteBuffer;
2021
import java.util.Arrays;
2122
import java.util.Collection;
@@ -229,11 +230,12 @@ public Message<?> toMessage(byte[] bytes, @Nullable Map<String, Object> headers)
229230
return message;
230231
}
231232
else {
232-
return new GenericMessage<>(bytes, headers);
233+
return headers == null ? new GenericMessage<>(bytes) : new GenericMessage<>(bytes, headers);
233234
}
234235
}
235236

236-
private Message<?> decodeNativeFormat(byte[] bytes, Map<String, Object> headersToAdd) throws Exception {
237+
@Nullable
238+
private Message<?> decodeNativeFormat(byte[] bytes, @Nullable Map<String, Object> headersToAdd) throws IOException {
237239
ByteBuffer buffer = ByteBuffer.wrap(bytes);
238240
if (buffer.remaining() > 4) {
239241
int headersLen = buffer.getInt();

spring-integration-jmx/src/main/java/org/springframework/integration/monitor/IntegrationMBeanExporter.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -846,9 +846,6 @@ private Object extractTarget(Object bean) {
846846
return bean;
847847
}
848848
Advised advised = (Advised) bean;
849-
if (advised.getTargetSource() == null) {
850-
return null;
851-
}
852849
try {
853850
return extractTarget(advised.getTargetSource().getTarget());
854851
}
@@ -1075,7 +1072,7 @@ private MessageSourceMetrics enhanceSourceMonitor(MessageSourceMetrics monitor)
10751072
if (target instanceof MessagingGatewaySupport) {
10761073
outputChannel = ((MessagingGatewaySupport) target).getRequestChannel();
10771074
}
1078-
else {
1075+
else if (target instanceof SourcePollingChannelAdapter) {
10791076
outputChannel = ((SourcePollingChannelAdapter) target).getOutputChannel();
10801077
}
10811078

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/AbstractConfigurableMongoDbMessageStore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ protected int getNextId() {
201201
new Update().inc(MessageDocumentFields.SEQUENCE, 1),
202202
FindAndModifyOptions.options().returnNew(true).upsert(true),
203203
Map.class, this.collectionName)
204-
.get(MessageDocumentFields.SEQUENCE);
204+
.get(MessageDocumentFields.SEQUENCE); // NOSONAR - never returns null
205205
}
206206

207207
protected void addMessageDocument(final MessageDocument document) {

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbMessageStore.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,16 +473,22 @@ private int getNextId() {
473473
new Update().inc(SEQUENCE, 1),
474474
FindAndModifyOptions.options().returnNew(true).upsert(true),
475475
Map.class,
476-
this.collectionName).get(SEQUENCE);
476+
this.collectionName).get(SEQUENCE); // NOSONAR - never returns null
477477
}
478478

479479
@SuppressWarnings("unchecked")
480480
private static void enhanceHeaders(MessageHeaders messageHeaders, Map<String, Object> headers) {
481481
Map<String, Object> innerMap =
482482
(Map<String, Object>) new DirectFieldAccessor(messageHeaders).getPropertyValue("headers");
483483
// using reflection to set ID and TIMESTAMP since they are immutable through MessageHeaders
484-
innerMap.put(MessageHeaders.ID, headers.get(MessageHeaders.ID));
485-
innerMap.put(MessageHeaders.TIMESTAMP, headers.get(MessageHeaders.TIMESTAMP));
484+
Object idHeader = headers.get(MessageHeaders.ID);
485+
if (idHeader != null) {
486+
innerMap.put(MessageHeaders.ID, idHeader);
487+
}
488+
Object tsHeader = headers.get(MessageHeaders.TIMESTAMP);
489+
if (tsHeader != null) {
490+
innerMap.put(MessageHeaders.TIMESTAMP, tsHeader);
491+
}
486492
}
487493

488494
@SuppressWarnings("unchecked")
@@ -760,7 +766,7 @@ public ErrorMessage convert(Document source) {
760766
MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers"));
761767

762768
Object payload = this.deserializingConverter.convert(((Binary) source.get("payload")).getData());
763-
ErrorMessage message = new ErrorMessage((Throwable) payload, headers);
769+
ErrorMessage message = new ErrorMessage((Throwable) payload, headers); // NOSONAR not null
764770
enhanceHeaders(message.getHeaders(), headers);
765771

766772
return message;

spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/support/MongoDbMessageBytesConverter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ public Set<ConvertiblePair> getConvertibleTypes() {
5959

6060
@Override
6161
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
62+
if (source == null) {
63+
return null;
64+
}
6265
if (Message.class.isAssignableFrom(sourceType.getObjectType())) {
6366
return new Binary(this.serializingConverter.convert(source));
6467
}

0 commit comments

Comments
 (0)