2004-12-01 Bryce McKinlay <mckinlay@redhat.com>
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Dec 2004 18:34:54 +0000 (18:34 +0000)
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 1 Dec 2004 18:34:54 +0000 (18:34 +0000)
        PR libgcj/18699
        * testsuite/libjava.lang/PR18699.java,
        testsuite/libjava.lang/PR18699.out: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91573 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/testsuite/libjava.lang/PR18699.java [new file with mode: 0644]
libjava/testsuite/libjava.lang/PR18699.out [new file with mode: 0644]

index bc85372..d62eaa4 100644 (file)
@@ -1,3 +1,9 @@
+2004-12-01  Bryce McKinlay  <mckinlay@redhat.com>
+
+       PR libgcj/18699
+       * testsuite/libjava.lang/PR18699.java, 
+       testsuite/libjava.lang/PR18699.out: New test.
+
 2004-11-30  Thomas Fitzsimmons  <fitzsim@redhat.com>
 
        * gnu/java/awt/peer/gtk/GdkGraphics.java (drawImage variants):
diff --git a/libjava/testsuite/libjava.lang/PR18699.java b/libjava/testsuite/libjava.lang/PR18699.java
new file mode 100644 (file)
index 0000000..6f81e10
--- /dev/null
@@ -0,0 +1,36 @@
+// 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);
+  }
+}
diff --git a/libjava/testsuite/libjava.lang/PR18699.out b/libjava/testsuite/libjava.lang/PR18699.out
new file mode 100644 (file)
index 0000000..e69de29