diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/NullabilityProblemKind.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/NullabilityProblemKind.java index 0eb7c8f533f9..068744b18492 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/NullabilityProblemKind.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/NullabilityProblemKind.java @@ -160,6 +160,10 @@ public class NullabilityProblemKind { } PsiElement parent = context.getParent(); if (parent instanceof PsiReferenceExpression) { + PsiElement resolved = ((PsiReferenceExpression)parent).resolve(); + if (resolved instanceof PsiMember && ((PsiMember)resolved).hasModifierProperty(PsiModifier.STATIC)) { + return null; + } PsiElement grandParent = parent.getParent(); if (grandParent instanceof PsiMethodCallExpression) { return callNPE.problem((PsiMethodCallExpression)grandParent, expression); diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/InstanceQualifiedStaticMember.java b/java/java-tests/testData/inspection/dataFlow/fixture/InstanceQualifiedStaticMember.java new file mode 100644 index 000000000000..4d970e5bfc47 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/fixture/InstanceQualifiedStaticMember.java @@ -0,0 +1,10 @@ +class Null { + public static void greet() { + System.out.println("Hello World"); + } + + public static void main(String[] args) { + Null null1 = null; + null1.greet(); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java index f533821a1c4d..a62934b66c15 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionTest.java @@ -666,4 +666,5 @@ public class DataFlowInspectionTest extends DataFlowInspectionTestCase { public void testArrayElementLocality() { doTest(); } public void testOverwrittenParameter() { doTest(); } public void testClassCastExceptionDispatch() { doTest(); } + public void testInstanceQualifiedStaticMember() { doTest(); } }