diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/RJUnitTask.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/RJUnitTask.java index df688637e..82bac161f 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/RJUnitTask.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/RJUnitTask.java @@ -158,6 +158,7 @@ public class RJUnitTask extends Task { public void run() { try { server.execute(); + System.out.println("PANIC !!!!!!"); } catch (Exception e) { caught = e; } diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java index 3e83ba41a..41cf6c8ab 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/ServerElement.java @@ -90,6 +90,8 @@ public final class ServerElement extends ProjectComponent { /** the parent task */ private RJUnitTask parent; + private Server server; + /** create a new server */ public ServerElement(RJUnitTask value) { parent = value; @@ -98,7 +100,7 @@ public final class ServerElement extends ProjectComponent { /** start the server and block until client has finished */ public void execute() throws BuildException { // configure the server... - Server server = new Server(port); + server = new Server(port); Enumeration listeners = formatterElements.elements(); while (listeners.hasMoreElements()) { FormatterElement fe = (FormatterElement)listeners.nextElement(); @@ -106,7 +108,12 @@ public final class ServerElement extends ProjectComponent { server.addListener( formatter ); } // and run it. It will stop once a client has finished. - server.start(); + try { + server.start(true); + server.shutdown(); + } catch (InterruptedException e){ + throw new BuildException(e); + } } /** set the port to listen to */ diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Messenger.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Messenger.java index fbfec5233..4ca310575 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Messenger.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Messenger.java @@ -79,15 +79,15 @@ public class Messenger { } public void close() throws IOException { - if (in != null) { - in.close(); - in = null; - } if (out != null) { out.flush(); out.close(); out = null; } + if (in != null) { + in.close(); + in = null; + } } public TestRunEvent read() throws Exception { diff --git a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java index 874718764..ccf6278f4 100644 --- a/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java +++ b/proposal/sandbox/junit/src/main/org/apache/tools/ant/taskdefs/optional/junit/remote/Server.java @@ -117,8 +117,19 @@ public class Server { /** start a server to the specified port */ public void start() { + try { + start(false); + } catch (InterruptedException e){ + } + } + + /** start a server to the specified port and wait for end */ + public void start(boolean flag) throws InterruptedException { Worker worker = new Worker(); worker.start(); + if (flag){ + worker.join(); + } } /** cancel the connection to the client */