diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/StandardInstructionVisitor.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/StandardInstructionVisitor.java index 81944764f45f..8c9c635ada33 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/StandardInstructionVisitor.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/StandardInstructionVisitor.java @@ -207,7 +207,7 @@ public class StandardInstructionVisitor extends InstructionVisitor { for (int i = 0; i < args.length; i++) { final DfaValue arg = memState.pop(); int paramIndex = args.length - i - 1; - if (argValues != null && (paramIndex < args.length - 1 || !varargCall)) { + if (argValues != null && (paramIndex < argValues.length - 1 || !varargCall)) { argValues[paramIndex] = arg; } diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/ContractVarargs.java b/java/java-tests/testData/inspection/dataFlow/fixture/ContractVarargs.java index e65bc8740e83..d8f144af2b41 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/ContractVarargs.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/ContractVarargs.java @@ -32,6 +32,10 @@ class Contracts { notBlank(message, "Message should not be blank", new Object(), new Object()); log(message); } + public void vararg3(@Nullable String message) { + notBlank(message, "Message should not be blank", new Object(), new Object(), new Object(), new Object(), new Object()); + log(message); + } public void log(@NotNull String message) { System.out.println(message);