diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaConstValue.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaConstValue.java
index 5ed0c6b81dde..ca2e13620c92 100644
--- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaConstValue.java
+++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaConstValue.java
@@ -89,11 +89,10 @@ public class DfaConstValue extends DfaValue {
if (TypeConversionUtil.isNumericType(type) && !TypeConversionUtil.isFloatOrDoubleType(type)) {
value = TypeConversionUtil.computeCastTo(value, PsiType.LONG);
}
- Object key = constant != null ? constant : value;
- DfaConstValue instance = myValues.get(key);
+ DfaConstValue instance = myValues.get(value);
if (instance == null) {
instance = new DfaConstValue(value, myFactory, constant);
- myValues.put(key, instance);
+ myValues.put(value, instance);
}
return instance;
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/SameComparisonTwice.java b/java/java-tests/testData/inspection/dataFlow/fixture/SameComparisonTwice.java
new file mode 100644
index 000000000000..52abf5b39e46
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/SameComparisonTwice.java
@@ -0,0 +1,38 @@
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.Nullable;
+
+class Doo {
+
+ static final int TYPE_1 = 20;
+ static final int TYPE_2 = 20;
+
+ public static void failedSecondCondition(int type) {
+ if(type != TYPE_1) {
+ return;
+ }
+
+ if(type != TYPE_2) {
+ System.out.println();
+ }
+ }
+
+
+}
+
+class Doo2 {
+
+ static final int TYPE_1 = 200;
+ static final int TYPE_2 = 200;
+
+ public static void failedSecondCondition(int type) {
+ if(type != TYPE_1) {
+ return;
+ }
+
+ if(type != TYPE_2) {
+ System.out.println();
+ }
+ }
+
+
+}
diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
index 0f2124d7d071..f636c11b37ab 100644
--- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionTest.java
@@ -309,6 +309,8 @@ public class DataFlowInspectionTest extends LightCodeInsightFixtureTestCase {
public void testUnusedCallDoesNotMakeUnknown() { doTest(); }
public void testGettersAndPureNoFlushing() { doTest(); }
+ public void testSameComparisonTwice() { doTest(); }
+
public void testParametersAreNonnullByDefault() {
myFixture.addClass("package javax.annotation; public @interface ParametersAreNonnullByDefault {}");
myFixture.addClass("package javax.annotation; public @interface ParametersAreNullableByDefault {}");