// Test for thread-local allocation problems. import java.util.HashMap; import java.util.Observable; import java.util.Observer; class PR18699 extends Observable implements Runnable, Observer { public static void main(String[] args) throws InterruptedException { PR18699 PR18699_1 = new PR18699(); PR18699 PR18699_2 = new PR18699(); PR18699_1.addObserver(PR18699_2); PR18699_2.addObserver(PR18699_1); new Thread(PR18699_1).start(); new Thread(PR18699_2).start(); } public void run() { int c = 0; String s = ""; while (++c < 50) { this.setChanged(); s = ""; for (int i = 0; i < 200; i++) s += String.valueOf(i); this.notifyObservers(s); } } HashMap map = new HashMap(); public void update(Observable o, Object obj) { map.put(o, obj); } }