ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas Lalevée <nicolas.lale...@hibnet.org>
Subject Re: bug in ant 1.8.2: read on System.in hangs for forked java task
Date Wed, 23 Mar 2011 20:57:25 GMT

Le 23 mars 2011 à 07:13, Ron Goldman a écrit :

> I just started using Ant 1.8.2 as it was installed along with the latest Java Update
for the Mac (JavaForMacOSX10.6Update4). Projects that worked fine with Ant 1.8.1 no longer
work in 1.8.2. The problem seems to be that a Java task that forks a jvm hangs when it tries
to read from System.in. Has anyone else seen this problem? 
> 
> Below is a simple build.xml file that demonstrates the problem. It creates a simple Java
file that just calls readLine() and echos the input, compiles the file, and runs it twice:
once in a non-forked JVM, which works fine, and again in a forked JVM, which hangs.

I can reproduce it locally. Could you please fill a bugzilla bug report [1], I'll look deeper
into it.

Nicolas

[1] https://issues.apache.org/bugzilla/enter_bug.cgi?product=Ant


> 
> -- Ron --
> 
> Here is a sample output:
> 
>> ant 
> Buildfile: /Users/Ron/Development/Spots/tmp/ant-test/build.xml 
> 
> compile: 
>    [echo]  
>    [echo] ant.version      = Apache Ant(TM) version 1.8.2 compiled on December 20 2010

>    [echo] ant.home         = /usr/share/ant 
>    [echo] ant.library.dir  = /usr/share/ant/lib 
>    [echo] ant.java.version = 1.6 
>    [echo]    
>   [javac] Compiling 1 source file to /Users/Ron/Development/Spots/tmp/ant-test 
> 
> good: 
>    [echo] This will work: calling Java with fork=false 
>    [java]  
>    [java] Please enter some text and hit return: 
> asdf 
>    [java] Text entered = asdf 
> 
> bad: 
>    [echo] This will hang: calling Java with fork=true 
>    [java]  
>    [java] Please enter some text and hit return: 
> asdf 
> ddfd 
> C-c C-c
>> 
> 
> And here's the build.xml file:
> 
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <project basedir="." default="test-all" name="java-input-bug">
> 
> <!--
> 	Build file to demonstrate a bug with ant version 1.8.2 running in Mac OS X 10.6 
>    	using the latest JavaForMacOSX10.6Update4, Java version 1.6.0_24.
> 
> 	Do "ant bad" to run a Java app that just reads in a line of text & echos it.
> 	If run in a forked JVM the program hangs waiting for input.
> 
> 	Doing "ant good" to run it in a non-forked JVM works fine, as does directly
> 	executing it with the command "java Test".
> 
> 	Everything works fine with ant version 1.8.1.
> -->
> 
> <target name="compile">
> <echo>
> ant.version      = ${ant.version}
> ant.home         = ${ant.home}
> ant.library.dir  = ${ant.library.dir}
> ant.java.version = ${ant.java.version}
> </echo>
> <echo file="Test.java">
> import java.io.*;
> public class Test {
>   public static void main(String[] args) throws IOException {
>       System.out.println("\nPlease enter some text and hit return:");
>       String line = new BufferedReader(new InputStreamReader(System.in)).readLine();
>       System.out.println("Text entered = " + line);
>   }
> }
> </echo>
> <javac srcdir="."
>        destdir="."
>        includeAntRuntime="no"
>        includeJavaRuntime="no"
>        debug="false"
>        fork="yes"/>
> </target>
> 
> <target name="bad" depends="compile">
> <echo message="This will hang: calling Java with fork=true"/>
> <java classname="Test"
>       classpath="."
>       fork="true"
>       failonerror="true"/>
> </target>
> 
> <target name="good" depends="compile">
> <echo message="This will work: calling Java with fork=false"/>
> <java classname="Test"
>       classpath="."
>       fork="false"
>       failonerror="true"/>
> </target>
> 
> <target name="test-all" depends="good, bad"/>
> 
> </project>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message