commit | 8bcb5707e16a6c2f5237cbe5636d41030e64fcdb | [log] [tgz] |
---|---|---|
author | Matthew Hall <mhall> | Wed Sep 09 14:33:38 2009 +0000 |
committer | Matthew Hall <mhall> | Wed Sep 09 14:33:38 2009 +0000 |
tree | 19e198f6c8b1b7db29b5b55e4c14d061b39c78d6 | |
parent | 9837853292157ff7d88a4216aa4f36e766969478 [diff] |
FIXED - bug 288428: [DataBinding] Test failures in M20090902-0900 https://bugs.eclipse.org/bugs/show_bug.cgi?id=288428
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java index 877d87b..1226b74 100755 --- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java +++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/core/tests/databinding/observable/ThreadRealm.java
@@ -118,6 +118,11 @@ try { block = true; + + synchronized (queue) { + queue.notifyAll(); // so waitUntilBlocking can return + } + while (block) { Runnable runnable = null; synchronized (queue) { @@ -157,4 +162,24 @@ queue.notifyAll(); } } + + /** + * Blocks until the ThreadRealm is blocking on its own thread. + */ + public void waitUntilBlocking() { + if (Thread.currentThread() == thread) { + throw new IllegalStateException( + "Cannot execute this method in the realm's own thread"); + } + + while (!block) { + synchronized (queue) { + try { + queue.wait(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + } + } + } }
diff --git a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/WidgetObservableThreadTest.java b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/WidgetObservableThreadTest.java index d2b3bd7..35907c0 100644 --- a/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/WidgetObservableThreadTest.java +++ b/tests/org.eclipse.jface.tests.databinding/src/org/eclipse/jface/tests/databinding/swt/WidgetObservableThreadTest.java
@@ -42,8 +42,7 @@ } }.start(); - while (!threadRealm.isBlocking()) - Thread.sleep(1); + threadRealm.waitUntilBlocking(); } protected void tearDown() throws Exception {