DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=43537>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=43537 Summary: DefaultCompilerAdapter ignores errors when writing temp file Product: Ant Version: 1.7.0 Platform: Sun OS/Version: Solaris Status: NEW Severity: normal Priority: P2 Component: Core tasks AssignedTo: dev@ant.apache.org ReportedBy: [EMAIL PROTECTED] javac task When writing a temporary file that contains the names of the java files to compile, a PrintWriter is used, presumably to make native EOLs in the file. However, the checkError method is never called, and a partial list of file names can be created. This occurred on my system when the file system used by temporary files was nearly full. It allowed the creation of the temp file, but couldn't hold all the data. It manifested as not all class files getting created by the javac task. Here's a patch that works for me: --- DefaultCompilerAdapter.java.orig Tue Oct 2 11:12:10 2007 +++ DefaultCompilerAdapter.java Tue Oct 2 11:11:03 2007 @@ -21,10 +21,10 @@ //Java5 style //import static org.apache.tools.ant.util.StringUtils.LINE_SEP; +import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.io.PrintWriter; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Location; import org.apache.tools.ant.Project; @@ -462,19 +462,21 @@ */ if (Commandline.toString(args).length() > 4096 && firstFileName >= 0) { - PrintWriter out = null; + BufferedWriter out = null; try { tmpFile = FILE_UTILS.createTempFile( "files", "", getJavac().getTempdir()); tmpFile.deleteOnExit(); - out = new PrintWriter(new FileWriter(tmpFile)); + out = new BufferedWriter(new FileWriter(tmpFile)); + String lineSeparator = System.getProperty("line.separator"); for (int i = firstFileName; i < args.length; i++) { if (quoteFiles && args[i].indexOf(" ") > -1) { args[i] = args[i].replace(File.separatorChar, '/'); - out.println("\"" + args[i] + "\""); + out.write("\"" + args[i] + "\""); } else { - out.println(args[i]); + out.write(args[i]); } + out.write(lineSeparator); } out.flush(); commandArray = new String[firstFileName + 1]; @@ -481,7 +483,7 @@ System.arraycopy(args, 0, commandArray, 0, firstFileName); commandArray[firstFileName] = "@" + tmpFile; } catch (IOException e) { - throw new BuildException("Error creating temporary file", + throw new BuildException("Error creating temporary file: " + e, e, location); } finally { FileUtils.close(out); -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]