diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java index c7e2fce923cd..1789f314dab8 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/HardcodedContracts.java @@ -69,12 +69,12 @@ public class HardcodedContracts { return Collections.singletonList(new MethodContract(constraints, THROW_EXCEPTION)); } } - else if ("org.apache.commons.lang.Validate".equals(className) || - "org.apache.commons.lang3.Validate".equals(className) || + else if ("org.apache.commons.lang.Validate".equals(className) || + "org.apache.commons.lang3.Validate".equals(className) || "org.springframework.util.Assert".equals(className)) { - if ("notNull".equals(methodName) && paramCount > 0) { + if (("isTrue".equals(methodName) || "state".equals(methodName)) && paramCount > 0) { MethodContract.ValueConstraint[] constraints = createConstraintArray(paramCount); - constraints[0] = NULL_VALUE; + constraints[0] = FALSE_VALUE; return Collections.singletonList(new MethodContract(constraints, THROW_EXCEPTION)); } } diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/SpringAssert.java b/java/java-tests/testData/inspection/dataFlow/fixture/SpringAssert.java new file mode 100644 index 000000000000..8fc586956569 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/fixture/SpringAssert.java @@ -0,0 +1,15 @@ +import org.springframework.util.Assert; + +class Contracts { + + void foo(Object o) { + Assert.isTrue(o instanceof String); + String s = (String) o; + } + + void foo1(Object o) { + Assert.state(o instanceof String, "oops"); + String s = (String) o; + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/HardcodedContractsTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/HardcodedContractsTest.java index a55ab3f24ec3..b288ee1d2f99 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/HardcodedContractsTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/HardcodedContractsTest.java @@ -97,5 +97,12 @@ public class HardcodedContractsTest extends DataFlowInspectionTestCase { checkHighlighting(); } + public void testSpringAssert() { + myFixture.addClass("package org.springframework.util; public class Assert {\n" + + " public static void isTrue(boolean expression) {}\n" + + " public static void state(boolean expression, String s) {}\n" + + "}"); + checkHighlighting(); + } }