From ce882aa8cc57195bc441189634cd35dcd2f9ae66 Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 28 Feb 2013 11:53:48 +0100 Subject: [PATCH] junit: check termination after everything from queue was processed (IDEA-102067) --- .../com/intellij/execution/junit2/segments/Extractor.java | 4 ++++ .../junit/src/com/intellij/execution/junit/TestObject.java | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/junit2/segments/Extractor.java b/java/execution/impl/src/com/intellij/execution/junit2/segments/Extractor.java index de2266aa74dd..0cb5b117817c 100644 --- a/java/execution/impl/src/com/intellij/execution/junit2/segments/Extractor.java +++ b/java/execution/impl/src/com/intellij/execution/junit2/segments/Extractor.java @@ -108,6 +108,10 @@ public class Extractor implements Disposable { return new SegmentedInputStreamReader(myStream); } + public void addRequest(Runnable runnable, final DeferredActionsQueue queue) { + myQueue.queue(new MyUpdate(runnable, queue, myOrder.incrementAndGet())); + } + private static class MyUpdate extends Update { private final Runnable myRunnable; private final DeferredActionsQueue myQueue; diff --git a/plugins/junit/src/com/intellij/execution/junit/TestObject.java b/plugins/junit/src/com/intellij/execution/junit/TestObject.java index e59369b8b5e3..46a52c135647 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestObject.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestObject.java @@ -62,7 +62,6 @@ import com.intellij.refactoring.listeners.RefactoringElementListener; import com.intellij.rt.execution.junit.IDEAJUnitListener; import com.intellij.rt.execution.junit.JUnitStarter; import com.intellij.util.Function; -import com.intellij.util.IJSwingUtilities; import com.intellij.util.PathUtil; import org.jetbrains.annotations.NotNull; @@ -303,7 +302,7 @@ public abstract class TestObject implements JavaCommandLine { if (myListenersFile != null) { FileUtil.delete(myListenersFile); } - IJSwingUtilities.invoke(new Runnable() { + handler.getOut().addRequest(new Runnable() { @Override public void run() { try { @@ -318,7 +317,7 @@ public abstract class TestObject implements JavaCommandLine { } } } - }); + }, queue); } @Override