Fix new Sonar smells

This commit is contained in:
Artem Bilan
2020-08-21 11:37:43 -04:00
parent 973276fc0a
commit 3fb6567a1f
3 changed files with 47 additions and 32 deletions

View File

@@ -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.

View File

@@ -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<Object>) this.serializer).serialize(replyMessage);
if (value == null) {
return;
}
replyPayload = ((RedisSerializer<Object>) 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);
}
}
}

View File

@@ -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);
}