public class LazyInit {
	static Object foo;

	// This should be reported
	public static Object getFoo() {
		if (foo == null)
			foo = new Object();
		return foo;
	}

	// This should not be reported
	public synchronized static Object sgetFoo() {
		if (foo == null)
			foo = new Object();
		return foo;
	}
}

@@ -36,16 +36,45 @@
 ect foo;
+%0A%09static volatile Object bar;
 %0A%0A%09// Th
@@ -186,16 +186,136 @@
  foo;%0A%09%7D
+%0A%09// This should be reported%0A%09public static Object getBar() %7B%0A%09%09if (bar == null)%0A%09%09%09bar = new Object();%0A%09%09return bar;%0A%09%7D
 %0A%0A%09// Th

Check that volatile statics don't get flagged