diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/logging/StringConcatenationArgumentToLogCallInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/logging/StringConcatenationArgumentToLogCallInspection.java index 3d46de0a6204..4c96475dd177 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/logging/StringConcatenationArgumentToLogCallInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/logging/StringConcatenationArgumentToLogCallInspection.java @@ -25,6 +25,7 @@ import com.siyeh.ig.BaseInspection; import com.siyeh.ig.BaseInspectionVisitor; import com.siyeh.ig.InspectionGadgetsFix; import com.siyeh.ig.psiutils.ExpressionUtils; +import com.siyeh.ig.psiutils.ParenthesesUtils; import com.siyeh.ig.psiutils.TypeUtils; import gnu.trove.THashSet; import org.jetbrains.annotations.Nls; @@ -143,7 +144,7 @@ public class StringConcatenationArgumentToLogCallInspection extends BaseInspecti final String text = operand.getText(); final int count = StringUtil.getOccurrenceCount(text, "{}"); for (int i = 0; i < count && usedArguments + i < arguments.length; i++) { - newArguments.add((PsiExpression)arguments[i + usedArguments].copy()); + newArguments.add(ParenthesesUtils.stripParentheses((PsiExpression)arguments[i + usedArguments].copy())); } usedArguments += count; if (!inStringLiteral) { @@ -167,7 +168,7 @@ public class StringConcatenationArgumentToLogCallInspection extends BaseInspecti } } else { - newArguments.add((PsiExpression)operand.copy()); + newArguments.add(ParenthesesUtils.stripParentheses((PsiExpression)operand.copy())); if (!inStringLiteral) { if (addPlus) { newMethodCall.append('+'); @@ -195,13 +196,18 @@ public class StringConcatenationArgumentToLogCallInspection extends BaseInspecti else { comma =true; } - newMethodCall.append(newArgument.getText()); + if (newArgument != null) { + newMethodCall.append(newArgument.getText()); + } } newMethodCall.append('}'); } else { for (PsiExpression newArgument : newArguments) { - newMethodCall.append(',').append(newArgument.getText()); + newMethodCall.append(','); + if (newArgument != null) { + newMethodCall.append(newArgument.getText()); + } } } newMethodCall.append(')'); diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/logging/string_concatenation_argument_to_log_call/UseOfConstant.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/logging/string_concatenation_argument_to_log_call/UseOfConstant.java index 71d2fb7b19bd..9861dfd6f0ac 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igfixes/logging/string_concatenation_argument_to_log_call/UseOfConstant.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/logging/string_concatenation_argument_to_log_call/UseOfConstant.java @@ -6,6 +6,6 @@ class UseOfConstant { Logger logger = LoggerFactory.getLogger(UseOfConstant.class); final String CONST = "const"; String var = "var"; - logger.info("string " + var + CONST); + logger.info("string " + (var) + CONST); } } \ No newline at end of file