From 4c560e713a888aeaf773ca40ef7bf9adf08a0d89 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Fri, 5 Apr 2002 15:11:42 +0000 Subject: [PATCH] make sure output of the spawned thread is attributed to the current task when using the timeout feature. If you don't like the name of the method, change it 8-) git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@272245 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/Project.java | 14 ++++++++++++++ .../org/apache/tools/ant/taskdefs/ExecuteJava.java | 1 + 2 files changed, 15 insertions(+) diff --git a/src/main/org/apache/tools/ant/Project.java b/src/main/org/apache/tools/ant/Project.java index 0274e8385..7a78b0bd4 100644 --- a/src/main/org/apache/tools/ant/Project.java +++ b/src/main/org/apache/tools/ant/Project.java @@ -1874,4 +1874,18 @@ public class Project { BuildEvent event = new BuildEvent(task); fireMessageLoggedEvent(event, message, priority); } + + /** + * Treat messages generated in the given thread as messages that + * come from the same task that is performed on the current + * thread. + * + * @since 1.102, Ant 1.5 + */ + public void registerThreadLikeCurrent(Thread thread) { + Task task = (Task) threadTasks.get(Thread.currentThread()); + if (task != null) { + threadTasks.put(thread, task); + } + } } diff --git a/src/main/org/apache/tools/ant/taskdefs/ExecuteJava.java b/src/main/org/apache/tools/ant/taskdefs/ExecuteJava.java index 54c4cd537..aa922314f 100644 --- a/src/main/org/apache/tools/ant/taskdefs/ExecuteJava.java +++ b/src/main/org/apache/tools/ant/taskdefs/ExecuteJava.java @@ -139,6 +139,7 @@ public class ExecuteJava implements Runnable, TimeoutObserver { run(); } else { thread = new Thread(this, "ExecuteJava"); + project.registerThreadLikeCurrent(thread); // if we run into a timout, the run-away thread shall not // make the VM run forever - if no timeout occurs, Ant's // main thread will still be there to let the new thread