package data.refactoring; public class Bug10R { static volatile int value = 0; static int x = 0; static int y = 0; final static Object m = new Object(); final public static void thread1() { final int r1 = x; synchronized (m) { } y = 1; assert r1 == 1; } final public static void thread2() { final int r2 = y; final int r3 = value; value = r3 + 1; x = 1; assert r2 == 1; } public Bug10R() { super(); } }