diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/MutableVolatileNullableFieldsTreatment.java b/java/java-tests/testData/inspection/dataFlow/fixture/MutableVolatileNullableFieldsTreatment.java
new file mode 100644
index 000000000000..e5cdac1d2dee
--- /dev/null
+++ b/java/java-tests/testData/inspection/dataFlow/fixture/MutableVolatileNullableFieldsTreatment.java
@@ -0,0 +1,68 @@
+import org.jetbrains.annotations.Nullable;
+
+class Foo {
+ @Nullable volatile Object data;
+
+ void checkNotNullAndUse(Foo f) {
+ if (f.data != null) {
+ System.out.println(f.data.hashCode());
+ }
+ }
+
+ void checkNullAndReturn(Foo f) {
+ if (f.data == null) {
+ return;
+ }
+ System.out.println(f.data.hashCode());
+ }
+
+ void warnWhenWrongCheck() {
+ if (data != null) {
+ return;
+ }
+ System.out.println(data.hashCode());
+ System.out.println(data.hashCode());
+ }
+
+ void warnWhenNotChecked(Foo f) {
+ System.out.println(f.data.hashCode());
+ }
+
+ void warnWhenNotCheckedThis() {
+ System.out.println(data.hashCode());
+ }
+
+ void dontWarnWhenDoubleChecked(Foo f) {
+ if (f.data == null) {
+ return;
+ }
+ if (f.data == null) {
+ return;
+ }
+ System.out.println(f.data.hashCode());
+ }
+
+ void dontWarnWhenDoubleChecked_This_Synchronized() {
+ if (data == null) {
+ return;
+ }
+ synchronized (this) {
+ if (data == null) {
+ return;
+ }
+ }
+ System.out.println(data.hashCode());
+ }
+
+ void dontWarnWhenDoubleChecked_This_WithMethodCall() {
+ if (data == null) {
+ return;
+ }
+ System.out.println(data.hashCode());
+ if (data == null) {
+ return;
+ }
+ System.out.println(data.hashCode());
+ }
+
+}
\ 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 b28e4316c746..d9489ab4c135 100644
--- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java
+++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java
@@ -133,6 +133,7 @@ public class DataFlowInspectionFixtureTest extends JavaCodeInsightFixtureTestCas
public void testConstantDoubleComparisons() { doTest(); }
public void _testMutableNullableFieldsTreatment() { doTest(); }
+ public void _testMutableVolatileNullableFieldsTreatment() { doTest(); }
public void testMutableNotAnnotatedFieldsTreatment() { doTest(); }
}