diff --git a/java/java-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java b/java/java-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java index deeed49144b2..8e798ea89634 100644 --- a/java/java-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java +++ b/java/java-impl/src/com/intellij/codeInspection/dataFlow/ControlFlowAnalyzer.java @@ -606,7 +606,7 @@ class ControlFlowAnalyzer extends JavaElementVisitor { PsiExpression lock = statement.getLockExpression(); if (lock != null) { lock.accept(this); - addInstruction(new PopInstruction()); + addInstruction(new FieldReferenceInstruction(lock, "Synchronized value")); } addInstruction(new FlushVariableInstruction(null)); diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/SynchronizingOnNullable.java b/java/java-tests/testData/inspection/dataFlow/fixture/SynchronizingOnNullable.java new file mode 100644 index 000000000000..7a83df6315b0 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/fixture/SynchronizingOnNullable.java @@ -0,0 +1,10 @@ +import org.jetbrains.annotations.Nullable; + +public class BrokenAlignment { + + void test(@Nullable Object n) { + synchronized (n) { + + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java index 0a8c16217c71..a03ad793c1b4 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java @@ -85,4 +85,6 @@ public class DataFlowInspectionFixtureTest extends JavaCodeInsightFixtureTestCas public void testAssigningUnknownToNullable() throws Throwable { doTest(); } + public void testSynchronizingOnNullable() throws Throwable { doTest(); } + }