From 3fb6567a1f52feceed743dbcba279ffde3f2bbc0 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Fri, 21 Aug 2020 11:37:43 -0400 Subject: [PATCH] Fix new Sonar smells --- .../jdbc/config/StoredProcParserUtils.java | 65 ++++++++++++------- .../inbound/RedisQueueInboundGateway.java | 12 ++-- .../syslog/RFC5424SyslogParser.java | 2 +- 3 files changed, 47 insertions(+), 32 deletions(-) diff --git a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/config/StoredProcParserUtils.java b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/config/StoredProcParserUtils.java index d7be7d44b4..7951ed2de3 100644 --- a/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/config/StoredProcParserUtils.java +++ b/spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/config/StoredProcParserUtils.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.jetbrains.annotations.NotNull; import org.w3c.dom.Element; import org.springframework.beans.BeanMetadataElement; @@ -91,31 +92,10 @@ public final class StoredProcParserUtils { String typeName = childElement.getAttribute("type-name"); String returnType = childElement.getAttribute("return-type"); - if (StringUtils.hasText(typeName) && StringUtils.hasText(scale)) { - parserContext.getReaderContext().error("'type-name' and 'scale' attributes are mutually exclusive " + - "for 'sql-parameter-definition' element.", storedProcComponent); - } + validateParameterAttributes(storedProcComponent, parserContext, scale, typeName, returnType); - if (StringUtils.hasText(returnType) && StringUtils.hasText(scale)) { - parserContext.getReaderContext().error("'returnType' and 'scale' attributes are mutually exclusive " + - "for 'sql-parameter-definition' element.", storedProcComponent); - } - - final BeanDefinitionBuilder parameterBuilder; - - if ("OUT".equalsIgnoreCase(direction)) { - parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlOutParameter.class); - } - else if ("INOUT".equalsIgnoreCase(direction)) { - parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlInOutParameter.class); - } - else { - parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlParameter.class); - if (StringUtils.hasText(returnType)) { - parserContext.getReaderContext().error("'return-type' attribute can't be provided " + - "for IN 'sql-parameter-definition' element.", storedProcComponent); - } - } + BeanDefinitionBuilder parameterBuilder = + createParameterBeanDefinitionBuilder(storedProcComponent, parserContext, direction, returnType); if (StringUtils.hasText(name)) { parameterBuilder.addConstructorArgValue(name); @@ -127,7 +107,6 @@ public final class StoredProcParserUtils { if (StringUtils.hasText(sqlType)) { JdbcTypesEnum jdbcTypeEnum = JdbcTypesEnum.convertToJdbcTypesEnum(sqlType); - if (jdbcTypeEnum != null) { parameterBuilder.addConstructorArgValue(jdbcTypeEnum.getCode()); } @@ -155,6 +134,42 @@ public final class StoredProcParserUtils { return parameterBuilder; } + private static void validateParameterAttributes(Element storedProcComponent, ParserContext parserContext, + String scale, String typeName, String returnType) { + + if (StringUtils.hasText(typeName) && StringUtils.hasText(scale)) { + parserContext.getReaderContext().error("'type-name' and 'scale' attributes are mutually exclusive " + + "for 'sql-parameter-definition' element.", storedProcComponent); + } + + if (StringUtils.hasText(returnType) && StringUtils.hasText(scale)) { + parserContext.getReaderContext().error("'returnType' and 'scale' attributes are mutually exclusive " + + "for 'sql-parameter-definition' element.", storedProcComponent); + } + } + + @NotNull + private static BeanDefinitionBuilder createParameterBeanDefinitionBuilder(Element storedProcComponent, + ParserContext parserContext, String direction, String returnType) { + + final BeanDefinitionBuilder parameterBuilder; + + if ("OUT".equalsIgnoreCase(direction)) { + parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlOutParameter.class); + } + else if ("INOUT".equalsIgnoreCase(direction)) { + parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlInOutParameter.class); + } + else { + parameterBuilder = BeanDefinitionBuilder.genericBeanDefinition(SqlParameter.class); + if (StringUtils.hasText(returnType)) { + parserContext.getReaderContext().error("'return-type' attribute can't be provided " + + "for IN 'sql-parameter-definition' element.", storedProcComponent); + } + } + return parameterBuilder; + } + /** * @param storedProcComponent The element. * @param parserContext The parser context. diff --git a/spring-integration-redis/src/main/java/org/springframework/integration/redis/inbound/RedisQueueInboundGateway.java b/spring-integration-redis/src/main/java/org/springframework/integration/redis/inbound/RedisQueueInboundGateway.java index a7c4c6f6d3..79a54de0d7 100644 --- a/spring-integration-redis/src/main/java/org/springframework/integration/redis/inbound/RedisQueueInboundGateway.java +++ b/spring-integration-redis/src/main/java/org/springframework/integration/redis/inbound/RedisQueueInboundGateway.java @@ -248,18 +248,18 @@ public class RedisQueueInboundGateway extends MessagingGatewaySupport } Message replyMessage = sendAndReceiveMessage(requestMessage); if (replyMessage != null) { + byte[] replyPayload = null; if (this.extractPayload) { - value = extractReplyPayload(replyMessage); + replyPayload = extractReplyPayload(replyMessage); } else { if (this.serializer != null) { - value = ((RedisSerializer) this.serializer).serialize(replyMessage); - if (value == null) { - return; - } + replyPayload = ((RedisSerializer) this.serializer).serialize(replyMessage); } } - this.template.boundListOps(uuid + QUEUE_NAME_SUFFIX).leftPush(value); + if (replyPayload != null) { + this.template.boundListOps(uuid + QUEUE_NAME_SUFFIX).leftPush(replyPayload); + } } } diff --git a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java index 8fb8f9ab7f..d48c0c7003 100644 --- a/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java +++ b/spring-integration-syslog/src/main/java/org/springframework/integration/syslog/RFC5424SyslogParser.java @@ -120,7 +120,7 @@ public class RFC5424SyslogParser { catch (IllegalStateException | StringIndexOutOfBoundsException ex) { map.put(SyslogHeaders.DECODE_ERRORS, "true"); map.put(SyslogHeaders.ERRORS, - (ex instanceof StringIndexOutOfBoundsException ? "Unexpected end of message: " : "") + (ex instanceof StringIndexOutOfBoundsException ? "Unexpected end of message: " : "") // NOSONAR + ex.getMessage()); map.put(SyslogHeaders.UNDECODED, line); }