Skip to content

Commit 7efe79f

Browse files
garyrussellartembilan
authored andcommitted
Sonar fixes
Critical issues for `o.s.i.j*` (except `jdbc`).
1 parent 89fdb93 commit 7efe79f

File tree

10 files changed

+51
-22
lines changed

10 files changed

+51
-22
lines changed

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

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

1717
package org.springframework.integration.core;
1818

19+
import org.springframework.lang.Nullable;
1920
import org.springframework.messaging.Message;
2021

2122
/**
@@ -31,6 +32,7 @@ public interface MessageSource<T> {
3132
* Returns <code>null</code> if no message is available.
3233
* @return The message or null.
3334
*/
35+
@Nullable
3436
Message<T> receive();
3537

3638
}

spring-integration-core/src/main/java/org/springframework/integration/endpoint/AbstractMessageSource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.integration.support.management.metrics.CounterFacade;
3232
import org.springframework.integration.support.management.metrics.MetricsCaptor;
3333
import org.springframework.integration.util.AbstractExpressionEvaluator;
34+
import org.springframework.lang.Nullable;
3435
import org.springframework.messaging.Message;
3536
import org.springframework.messaging.MessagingException;
3637
import org.springframework.util.CollectionUtils;
@@ -231,6 +232,7 @@ private Map<String, Object> evaluateHeaders() {
231232
* also can be {@link AbstractIntegrationMessageBuilder} which is used for additional headers population.
232233
* @return The value returned.
233234
*/
235+
@Nullable
234236
protected abstract Object doReceive();
235237

236238
@Override

spring-integration-ip/src/main/java/org/springframework/integration/ip/tcp/connection/CachingClientConnectionFactory.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,9 @@ private final class CachedConnection extends TcpConnectionInterceptorSupport {
393393

394394
private final AtomicBoolean released = new AtomicBoolean();
395395

396-
private CachedConnection(TcpConnectionSupport connection, @Nullable TcpListener tcpListener) {
396+
private CachedConnection(TcpConnectionSupport connection, // NOSONAR false positive, not marked @Nullable
397+
@Nullable TcpListener tcpListener) {
398+
397399
super.setTheConnection(connection);
398400
registerListener(tcpListener);
399401
}

spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsDestinationPollingSource.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.springframework.integration.jms.util.JmsAdapterUtils;
2525
import org.springframework.integration.support.AbstractIntegrationMessageBuilder;
2626
import org.springframework.jms.core.JmsTemplate;
27+
import org.springframework.jms.support.converter.MessageConverter;
2728
import org.springframework.messaging.Message;
2829
import org.springframework.messaging.MessagingException;
2930
import org.springframework.util.Assert;
@@ -131,7 +132,10 @@ protected Object doReceive() {
131132
Map<String, Object> mappedHeaders = this.headerMapper.toHeaders(jmsMessage);
132133
Object object = jmsMessage;
133134
if (this.extractPayload) {
134-
object = this.jmsTemplate.getMessageConverter().fromMessage(jmsMessage);
135+
MessageConverter converter = this.jmsTemplate.getMessageConverter();
136+
if (converter != null) {
137+
object = converter.fromMessage(jmsMessage);
138+
}
135139
}
136140
AbstractIntegrationMessageBuilder<?> builder =
137141
(object instanceof Message)

spring-integration-jms/src/main/java/org/springframework/integration/jms/SubscribableJmsChannel.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springframework.integration.support.MessageBuilderFactory;
3434
import org.springframework.jms.core.JmsTemplate;
3535
import org.springframework.jms.listener.AbstractMessageListenerContainer;
36+
import org.springframework.jms.support.converter.MessageConverter;
3637
import org.springframework.messaging.Message;
3738
import org.springframework.messaging.MessageDeliveryException;
3839
import org.springframework.messaging.MessageHandler;
@@ -206,14 +207,19 @@ private static final class DispatchingMessageListener implements MessageListener
206207
public void onMessage(javax.jms.Message message) {
207208
Message<?> messageToSend = null;
208209
try {
209-
Object converted = this.jmsTemplate.getMessageConverter().fromMessage(message);
210+
MessageConverter converter = this.jmsTemplate.getMessageConverter();
211+
Object converted = null;
212+
if (converter != null) {
213+
converted = converter.fromMessage(message);
214+
}
210215
if (converted != null) {
211216
messageToSend = (converted instanceof Message<?>) ? (Message<?>) converted
212217
: this.messageBuilderFactory.withPayload(converted).build();
213218
this.dispatcher.dispatch(messageToSend);
214219
}
215220
else if (this.logger.isWarnEnabled()) {
216-
this.logger.warn("MessageConverter returned null, no Message to dispatch");
221+
this.logger.warn("No converter found, or converter returned null for: " + message
222+
+ ", no Message to dispatch");
217223
}
218224
}
219225
catch (MessageDispatchingException e) {

spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsChannelFactoryBean.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import javax.jms.ExceptionListener;
2525
import javax.jms.Session;
2626

27+
import org.springframework.beans.factory.BeanFactory;
2728
import org.springframework.beans.factory.BeanNameAware;
2829
import org.springframework.beans.factory.DisposableBean;
2930
import org.springframework.beans.factory.config.AbstractFactoryBean;
@@ -392,8 +393,9 @@ protected AbstractJmsChannel createInstance() throws Exception {
392393
this.channel.setInterceptors(this.interceptors);
393394
}
394395
this.channel.setBeanName(this.beanName);
395-
if (this.getBeanFactory() != null) {
396-
this.channel.setBeanFactory(this.getBeanFactory());
396+
BeanFactory beanFactory = this.getBeanFactory();
397+
if (beanFactory != null) {
398+
this.channel.setBeanFactory(beanFactory);
397399
}
398400
this.channel.afterPropertiesSet();
399401
return this.channel;

spring-integration-jms/src/main/java/org/springframework/integration/jms/dsl/JmsPollableMessageChannelSpec.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,15 @@
2626
import org.springframework.integration.jms.config.JmsChannelFactoryBean;
2727
import org.springframework.jms.support.converter.MessageConverter;
2828
import org.springframework.jms.support.destination.DestinationResolver;
29+
import org.springframework.lang.Nullable;
2930

3031
/**
3132
* A {@link MessageChannelSpec} for an {@link AbstractJmsChannel}.
3233
*
3334
* @param <S> the target {@link JmsPollableMessageChannelSpec} implementation type.
3435
*
3536
* @author Artem Bilan
37+
* @author Gary Russell
3638
*
3739
* @since 5.0
3840
*/
@@ -53,8 +55,10 @@ public class JmsPollableMessageChannelSpec<S extends JmsPollableMessageChannelSp
5355
}
5456

5557
@Override
56-
protected S id(String id) {
57-
this.jmsChannelFactoryBean.setBeanName(id);
58+
protected S id(@Nullable String id) {
59+
if (id != null) {
60+
this.jmsChannelFactoryBean.setBeanName(id);
61+
}
5862
return super.id(id);
5963
}
6064

spring-integration-jmx/src/main/java/org/springframework/integration/jmx/OperationInvokingMessageHandler.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2016 the original author or authors.
2+
* Copyright 2002-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -222,7 +222,7 @@ private String resolveOperationName(Message<?> message) {
222222

223223
@SuppressWarnings({ "unchecked", "rawtypes" })
224224
private Map<String, Object> resolveParameters(Message<?> message) {
225-
Map<String, Object> map = null;
225+
Map<String, Object> map;
226226
if (message.getPayload() instanceof Map) {
227227
map = (Map<String, Object>) message.getPayload();
228228
}
@@ -233,11 +233,8 @@ else if (message.getPayload() != null && message.getPayload().getClass().isArray
233233
map = this.createParameterMapFromList(
234234
Arrays.asList(ObjectUtils.toObjectArray(message.getPayload())));
235235
}
236-
else if (message.getPayload() != null) {
237-
map = this.createParameterMapFromList(Collections.singletonList(message.getPayload()));
238-
}
239236
else {
240-
map = Collections.EMPTY_MAP;
237+
map = this.createParameterMapFromList(Collections.singletonList(message.getPayload()));
241238
}
242239
return map;
243240
}

spring-integration-jpa/src/main/java/org/springframework/integration/jpa/outbound/JpaOutboundGatewayFactoryBean.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2016 the original author or authors.
2+
* Copyright 2002-2018 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
2020

2121
import org.aopalliance.aop.Advice;
2222

23+
import org.springframework.beans.factory.BeanFactory;
2324
import org.springframework.beans.factory.FactoryBean;
2425
import org.springframework.beans.factory.config.AbstractFactoryBean;
2526
import org.springframework.integration.jpa.core.JpaExecutor;
@@ -132,7 +133,10 @@ protected JpaOutboundGateway createInstance() {
132133
if (this.adviceChain != null) {
133134
jpaOutboundGateway.setAdviceChain(this.adviceChain);
134135
}
135-
jpaOutboundGateway.setBeanFactory(this.getBeanFactory());
136+
BeanFactory beanFactory = getBeanFactory();
137+
if (beanFactory != null) {
138+
jpaOutboundGateway.setBeanFactory(beanFactory);
139+
}
136140
jpaOutboundGateway.afterPropertiesSet();
137141
return jpaOutboundGateway;
138142
}

spring-integration-jpa/src/main/java/org/springframework/integration/jpa/support/JpaParameter.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public JpaParameter(String name, @Nullable Object value, @Nullable String expres
6767

6868
this.name = name;
6969
this.value = value;
70-
this.setExpression(expression);
70+
setExpression(expression);
7171
}
7272

7373
/**
@@ -79,7 +79,7 @@ public JpaParameter(String name, @Nullable Object value, @Nullable String expres
7979
*/
8080
public JpaParameter(@Nullable Object value, @Nullable String expression) {
8181
this.value = value;
82-
this.setExpression(expression);
82+
setExpression(expression);
8383
}
8484

8585
public String getName() {
@@ -90,6 +90,7 @@ public void setName(String name) {
9090
this.name = name;
9191
}
9292

93+
@Nullable
9394
public Object getValue() {
9495
return this.value;
9596
}
@@ -98,22 +99,27 @@ public void setValue(Object value) {
9899
this.value = value;
99100
}
100101

102+
@Nullable
101103
public String getExpression() {
102104
return this.expression;
103105
}
104106

107+
@Nullable
105108
public Expression getSpelExpression() {
106109
return this.spelExpression;
107110
}
108111

112+
@Nullable
109113
public Expression getProjectionExpression() {
110114
return this.projectionExpression;
111115
}
112116

113-
public final void setExpression(String expression) {
114-
this.expression = expression;
115-
this.spelExpression = PARSER.parseExpression(expression);
116-
this.projectionExpression = PARSER.parseExpression("#root.![" + expression + "]");
117+
public final void setExpression(@Nullable String expression) {
118+
if (expression != null) {
119+
this.expression = expression;
120+
this.spelExpression = PARSER.parseExpression(expression);
121+
this.projectionExpression = PARSER.parseExpression("#root.![" + expression + "]");
122+
}
117123
}
118124

119125
@Override

0 commit comments

Comments
 (0)