commit | 8e80434227371e0d97174fc90893a46a20552a4b | [log] [tgz] |
---|---|---|
author | Boris Bokowski <bbokowski> | Wed Sep 09 14:29:06 2009 +0000 |
committer | Boris Bokowski <bbokowski> | Wed Sep 09 14:29:06 2009 +0000 |
tree | c6d57aacc43f9a8a7ef0026a56e28e991d747a72 | |
parent | 1d10eff0f84f92f15d40f43bfa4bb2bffdd61900 [diff] |
Fix for Bug 288428 - [DataBinding] Test failures in M20090902-0900
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 ec60abf..804748f 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
@@ -41,6 +41,7 @@ threadRealm.block(); } }.start(); + threadRealm.waitUntilBlocking(); } protected void tearDown() throws Exception {