Would it not be better to do something like this: if (loggingMessage) {
PrintStream tempErr = new PrintStream (new FileOutputStream (FileDescriptor.err)); tempErr.println (message); } That way the message is not swallowed & lost? -- Jeffrey E. Care ([EMAIL PROTECTED]) WebSphere Build SWAT Team Lead WebSphere Build Tooling Lead (Project Mantis) https://w3.opensource.ibm.com/projects/mantis [EMAIL PROTECTED] wrote on 01/14/2005 05:09:23 AM: > bodewig 2005/01/14 02:09:23 > > Modified: src/main/org/apache/tools/ant Project.java > Log: > Silently ignore messages being written to System.err/out while a > Listener is processing a different message > > Revision Changes Path > 1.183 +15 -5 ant/src/main/org/apache/tools/ant/Project.java > > Index: Project.java > =================================================================== > RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/Project.java,v > retrieving revision 1.182 > retrieving revision 1.183 > diff -u -r1.182 -r1.183 > --- Project.java 10 Jan 2005 23:44:57 -0000 1.182 > +++ Project.java 14 Jan 2005 10:09:23 -0000 1.183 > @@ -1982,10 +1982,20 @@ > } > synchronized (this) { > if (loggingMessage) { > - throw new BuildException("Listener attempted to access " > - + (priority == MSG_ERR ? "System.err" : "System.out") > - + " with message [" + message > - + "] - infinite loop terminated"); > + /* > + * One of the Listeners has attempted to access > + * System.err or System.out. > + * > + * We used to throw an exception in this case, but > + * sometimes Listeners can't prevent it(like our own > + * Log4jListener which invokes getLogger() which in > + * turn wants to write to the console). > + * > + * @see http://marc.theaimsgroup.com/? > t=110538624200006&r=1&w=2 > + * > + * We now (Ant 1.7 and 1.6.3) simply swallow the message. > + */ > + return; > } > try { > loggingMessage = true; > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] >