commit | d83159a9fb3a395d6d321b4e0f450136ceefbec2 | [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 | 8d42944fb06b84896aafab08211209f578997d6f | |
parent | e26abb3d441fa64c613ec5dab060242518f2ec2a [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 {