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-unsubscr...@ant.apache.org
> For additional commands, e-mail: user-h...@ant.apache.org
> 


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

Reply via email to