Skip to content

Commit c9ae6c7

Browse files
garyrussellartembilan
authored andcommitted
Sonar: AMQP Fixes
- critical smells - also import in IMHA * Polishing
1 parent 0c33591 commit c9ae6c7

File tree

5 files changed

+24
-12
lines changed

5 files changed

+24
-12
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,14 @@ subprojects { subproject ->
131131
romeToolsVersion = '1.9.0'
132132
servletApiVersion = '4.0.0'
133133
smackVersion = '4.3.1'
134-
springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '2.1.0.RELEASE'
134+
springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '2.1.2.BUILD-SNAPSHOT'
135135
springDataJpaVersion = '2.1.2.RELEASE'
136136
springDataMongoVersion = '2.1.2.RELEASE'
137137
springDataRedisVersion = '2.1.2.RELEASE'
138138
springGemfireVersion = '2.1.2.RELEASE'
139139
springSecurityVersion = '5.1.1.RELEASE'
140140
springRetryVersion = '1.2.2.RELEASE'
141-
springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.1.2.RELEASE'
141+
springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.1.3.BUILD-SNAPSHOT'
142142
springWsVersion = '3.0.3.RELEASE'
143143
tomcatVersion = "9.0.12"
144144
xmlUnitVersion = '1.6'

spring-integration-amqp/src/main/java/org/springframework/integration/amqp/dsl/AmqpPollableMessageChannelSpec.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.integration.amqp.config.AmqpChannelFactoryBean;
2828
import org.springframework.integration.amqp.support.AmqpHeaderMapper;
2929
import org.springframework.integration.dsl.MessageChannelSpec;
30+
import org.springframework.lang.Nullable;
3031
import org.springframework.util.Assert;
3132

3233
/**
@@ -62,7 +63,7 @@ public class AmqpPollableMessageChannelSpec<S extends AmqpPollableMessageChannel
6263
}
6364

6465
@Override
65-
protected S id(String id) {
66+
protected S id(@Nullable String id) {
6667
this.amqpChannelFactoryBean.setBeanName(id);
6768
return super.id(id);
6869
}

spring-integration-amqp/src/main/java/org/springframework/integration/amqp/outbound/AbstractAmqpOutboundEndpoint.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.HashMap;
2020
import java.util.Map;
21+
import java.util.UUID;
2122

2223
import org.springframework.amqp.core.MessageDeliveryMode;
2324
import org.springframework.amqp.rabbit.connection.Connection;
@@ -54,6 +55,8 @@
5455
public abstract class AbstractAmqpOutboundEndpoint extends AbstractReplyProducingMessageHandler
5556
implements Lifecycle {
5657

58+
private static final UUID NO_ID = new UUID(0L, 0L);
59+
5760
private String exchangeName;
5861

5962
private String routingKey;
@@ -472,7 +475,11 @@ public boolean isRunning() {
472475
protected CorrelationData generateCorrelationData(Message<?> requestMessage) {
473476
CorrelationData correlationData = null;
474477
if (this.correlationDataGenerator != null) {
475-
correlationData = new CorrelationDataWrapper(requestMessage.getHeaders().getId().toString(),
478+
UUID messageId = requestMessage.getHeaders().getId();
479+
if (messageId == null) {
480+
messageId = NO_ID;
481+
}
482+
correlationData = new CorrelationDataWrapper(messageId.toString(),
476483
this.correlationDataGenerator.processMessage(requestMessage), requestMessage);
477484
}
478485
return correlationData;

spring-integration-amqp/src/test/java/org/springframework/integration/amqp/config/AmqpOutboundChannelAdapterParserTests.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import java.io.IOException;
3838
import java.lang.reflect.Field;
3939
import java.util.List;
40+
import java.util.concurrent.ExecutorService;
4041
import java.util.concurrent.atomic.AtomicBoolean;
4142

4243
import org.apache.commons.logging.Log;
@@ -238,7 +239,8 @@ public void testInt2773UseDefaultAmqpTemplateExchangeAndRoutingLey() throws IOEx
238239
Channel mockChannel = mock(Channel.class);
239240

240241
when(connectionFactory.createConnection()).thenReturn(mockConnection);
241-
PublisherCallbackChannelImpl publisherCallbackChannel = new PublisherCallbackChannelImpl(mockChannel);
242+
PublisherCallbackChannelImpl publisherCallbackChannel = new PublisherCallbackChannelImpl(mockChannel,
243+
mock(ExecutorService.class));
242244
when(mockConnection.createChannel(false)).thenReturn(publisherCallbackChannel);
243245

244246
MessageChannel requestChannel = context.getBean("toRabbitOnlyWithTemplateChannel", MessageChannel.class);
@@ -255,7 +257,8 @@ public void testInt2773WithDefaultAmqpTemplateExchangeAndRoutingKey() throws IOE
255257
Channel mockChannel = mock(Channel.class);
256258

257259
when(connectionFactory.createConnection()).thenReturn(mockConnection);
258-
PublisherCallbackChannelImpl publisherCallbackChannel = new PublisherCallbackChannelImpl(mockChannel);
260+
PublisherCallbackChannelImpl publisherCallbackChannel = new PublisherCallbackChannelImpl(mockChannel,
261+
mock(ExecutorService.class));
259262
when(mockConnection.createChannel(false)).thenReturn(publisherCallbackChannel);
260263

261264
MessageChannel requestChannel = context.getBean("withDefaultAmqpTemplateExchangeAndRoutingKey",
@@ -272,7 +275,8 @@ public void testInt2773WithOverrideToDefaultAmqpTemplateExchangeAndRoutingLey()
272275
Channel mockChannel = mock(Channel.class);
273276

274277
when(connectionFactory.createConnection()).thenReturn(mockConnection);
275-
PublisherCallbackChannelImpl publisherCallbackChannel = new PublisherCallbackChannelImpl(mockChannel);
278+
PublisherCallbackChannelImpl publisherCallbackChannel = new PublisherCallbackChannelImpl(mockChannel,
279+
mock(ExecutorService.class));
276280
when(mockConnection.createChannel(false)).thenReturn(publisherCallbackChannel);
277281

278282
MessageChannel requestChannel = context.getBean("overrideTemplateAttributesToEmpty", MessageChannel.class);

spring-integration-core/src/main/java/org/springframework/integration/IntegrationMessageHeaderAccessor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.springframework.integration.acks.AcknowledgmentCallback;
2828
import org.springframework.lang.Nullable;
2929
import org.springframework.messaging.Message;
30-
import org.springframework.messaging.MessageHeaders;
3130
import org.springframework.messaging.support.MessageHeaderAccessor;
3231
import org.springframework.util.Assert;
3332
import org.springframework.util.ObjectUtils;
@@ -74,10 +73,11 @@ public IntegrationMessageHeaderAccessor(@Nullable Message<?> message) {
7473
}
7574

7675
/**
77-
* Specify a list of headers which should be considered as read only
78-
* and prohibited from being populated in the message.
79-
* @param readOnlyHeaders the list of headers for {@code readOnly} mode.
80-
* Defaults to {@link MessageHeaders#ID} and {@link MessageHeaders#TIMESTAMP}.
76+
* Specify a list of headers which should be considered as read only and prohibited
77+
* from being populated in the message.
78+
* @param readOnlyHeaders the list of headers for {@code readOnly} mode. Defaults to
79+
* {@link org.springframework.messaging.MessageHeaders#ID} and
80+
* {@link org.springframework.messaging.MessageHeaders#TIMESTAMP}.
8181
* @since 4.3.2
8282
* @see #isReadOnly(String)
8383
*/

0 commit comments

Comments
 (0)