Browse Source

PrintWriter hides exceptions, avoid it

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@793462 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
f62d563414
15 changed files with 181 additions and 133 deletions
  1. +7
    -7
      src/main/org/apache/tools/ant/taskdefs/CVSPass.java
  2. +13
    -11
      src/main/org/apache/tools/ant/taskdefs/Execute.java
  3. +16
    -15
      src/main/org/apache/tools/ant/taskdefs/Javadoc.java
  4. +5
    -4
      src/main/org/apache/tools/ant/taskdefs/Jikes.java
  5. +6
    -5
      src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
  6. +9
    -7
      src/main/org/apache/tools/ant/taskdefs/email/Message.java
  7. +5
    -4
      src/main/org/apache/tools/ant/taskdefs/optional/Cab.java
  8. +10
    -12
      src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java
  9. +7
    -5
      src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java
  10. +27
    -12
      src/main/org/apache/tools/ant/taskdefs/optional/junit/BriefJUnitResultFormatter.java
  11. +40
    -28
      src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java
  12. +7
    -7
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  13. +4
    -3
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
  14. +20
    -9
      src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java
  15. +5
    -4
      src/main/org/apache/tools/ant/util/JavaEnvUtils.java

+ 7
- 7
src/main/org/apache/tools/ant/taskdefs/CVSPass.java View File

@@ -19,14 +19,15 @@
package org.apache.tools.ant.taskdefs; package org.apache.tools.ant.taskdefs;


import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task; import org.apache.tools.ant.Task;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.StringUtils; import org.apache.tools.ant.util.StringUtils;


/** /**
@@ -93,7 +94,7 @@ public class CVSPass extends Task {
log("passFile: " + passFile, Project.MSG_DEBUG); log("passFile: " + passFile, Project.MSG_DEBUG);


BufferedReader reader = null; BufferedReader reader = null;
PrintWriter writer = null;
BufferedWriter writer = null;
try { try {
StringBuffer buf = new StringBuffer(); StringBuffer buf = new StringBuffer();


@@ -114,9 +115,10 @@ public class CVSPass extends Task {


log("Writing -> " + pwdfile , Project.MSG_DEBUG); log("Writing -> " + pwdfile , Project.MSG_DEBUG);


writer = new PrintWriter(new FileWriter(passFile));
writer = new BufferedWriter(new FileWriter(passFile));


writer.println(pwdfile);
writer.write(pwdfile);
writer.newLine();
} catch (IOException e) { } catch (IOException e) {
throw new BuildException(e); throw new BuildException(e);
} finally { } finally {
@@ -127,9 +129,7 @@ public class CVSPass extends Task {
// ignore // ignore
} }
} }
if (writer != null) {
writer.close();
}
FileUtils.close(writer);
} }
} }




+ 13
- 11
src/main/org/apache/tools/ant/taskdefs/Execute.java View File

@@ -19,12 +19,12 @@
package org.apache.tools.ant.taskdefs; package org.apache.tools.ant.taskdefs;


import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringReader; import java.io.StringReader;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
@@ -1177,9 +1177,9 @@ public class Execute {
private File createCommandFile(String[] cmd, String[] env) private File createCommandFile(String[] cmd, String[] env)
throws IOException { throws IOException {
File script = FILE_UTILS.createTempFile("ANT", ".COM", null, true, true); File script = FILE_UTILS.createTempFile("ANT", ".COM", null, true, true);
PrintWriter out = null;
BufferedWriter out = null;
try { try {
out = new PrintWriter(new FileWriter(script));
out = new BufferedWriter(new FileWriter(script));


// add the environment as logicals to the DCL script // add the environment as logicals to the DCL script
if (env != null) { if (env != null) {
@@ -1187,18 +1187,20 @@ public class Execute {
for (int i = 0; i < env.length; i++) { for (int i = 0; i < env.length; i++) {
eqIndex = env[i].indexOf('='); eqIndex = env[i].indexOf('=');
if (eqIndex != -1) { if (eqIndex != -1) {
out.print("$ DEFINE/NOLOG ");
out.print(env[i].substring(0, eqIndex));
out.print(" \"");
out.print(env[i].substring(eqIndex + 1));
out.println('\"');
out.write("$ DEFINE/NOLOG ");
out.write(env[i].substring(0, eqIndex));
out.write(" \"");
out.write(env[i].substring(eqIndex + 1));
out.write('\"');
out.newLine();
} }
} }
} }
out.print("$ " + cmd[0]);
out.write("$ " + cmd[0]);
for (int i = 1; i < cmd.length; i++) { for (int i = 1; i < cmd.length; i++) {
out.println(" -");
out.print(cmd[i]);
out.write(" -");
out.newLine();
out.write(cmd[i]);
} }
} finally { } finally {
if (out != null) { if (out != null) {


+ 16
- 15
src/main/org/apache/tools/ant/taskdefs/Javadoc.java View File

@@ -21,7 +21,7 @@ import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import java.io.BufferedWriter;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.net.MalformedURLException; import java.net.MalformedURLException;
@@ -1706,7 +1706,7 @@ public class Javadoc extends Task {
} }


File tmpList = null; File tmpList = null;
PrintWriter srcListWriter = null;
BufferedWriter srcListWriter = null;


try { try {
/** /**
@@ -1717,7 +1717,7 @@ public class Javadoc extends Task {
tmpList = FILE_UTILS.createTempFile("javadoc", "", null, true, true); tmpList = FILE_UTILS.createTempFile("javadoc", "", null, true, true);
toExecute.createArgument() toExecute.createArgument()
.setValue("@" + tmpList.getAbsolutePath()); .setValue("@" + tmpList.getAbsolutePath());
srcListWriter = new PrintWriter(
srcListWriter = new BufferedWriter(
new FileWriter(tmpList.getAbsolutePath(), new FileWriter(tmpList.getAbsolutePath(),
true)); true));
} }
@@ -1730,9 +1730,7 @@ public class Javadoc extends Task {
throw new BuildException("Error creating temporary file", throw new BuildException("Error creating temporary file",
e, getLocation()); e, getLocation());
} finally { } finally {
if (srcListWriter != null) {
srcListWriter.close();
}
FileUtils.close(srcListWriter);
} }


if (packageList != null) { if (packageList != null) {
@@ -1898,7 +1896,7 @@ public class Javadoc extends Task {
private void writeExternalArgs(Commandline toExecute) { private void writeExternalArgs(Commandline toExecute) {
// If using an external file, write the command line options to it // If using an external file, write the command line options to it
File optionsTmpFile = null; File optionsTmpFile = null;
PrintWriter optionsListWriter = null;
BufferedWriter optionsListWriter = null;
try { try {
optionsTmpFile = FILE_UTILS.createTempFile( optionsTmpFile = FILE_UTILS.createTempFile(
"javadocOptions", "", null, true, true); "javadocOptions", "", null, true, true);
@@ -1906,7 +1904,7 @@ public class Javadoc extends Task {
toExecute.clearArgs(); toExecute.clearArgs();
toExecute.createArgument().setValue( toExecute.createArgument().setValue(
"@" + optionsTmpFile.getAbsolutePath()); "@" + optionsTmpFile.getAbsolutePath());
optionsListWriter = new PrintWriter(
optionsListWriter = new BufferedWriter(
new FileWriter(optionsTmpFile.getAbsolutePath(), true)); new FileWriter(optionsTmpFile.getAbsolutePath(), true));
for (int i = 0; i < listOpt.length; i++) { for (int i = 0; i < listOpt.length; i++) {
String string = listOpt[i]; String string = listOpt[i];
@@ -1914,10 +1912,11 @@ public class Javadoc extends Task {
toExecute.createArgument().setValue(string); toExecute.createArgument().setValue(string);
} else { } else {
if (string.startsWith("-")) { if (string.startsWith("-")) {
optionsListWriter.print(string);
optionsListWriter.print(" ");
optionsListWriter.write(string);
optionsListWriter.write(" ");
} else { } else {
optionsListWriter.println(quoteString(string));
optionsListWriter.write(quoteString(string));
optionsListWriter.newLine();
} }
} }
} }
@@ -2170,13 +2169,14 @@ public class Javadoc extends Task {
Vector sourceFilesToDoc, Vector sourceFilesToDoc,
boolean useExternalFile, boolean useExternalFile,
File tmpList, File tmpList,
PrintWriter srcListWriter)
BufferedWriter srcListWriter)
throws IOException { throws IOException {
Enumeration e = packagesToDoc.elements(); Enumeration e = packagesToDoc.elements();
while (e.hasMoreElements()) { while (e.hasMoreElements()) {
String packageName = (String) e.nextElement(); String packageName = (String) e.nextElement();
if (useExternalFile) { if (useExternalFile) {
srcListWriter.println(packageName);
srcListWriter.write(packageName);
srcListWriter.newLine();
} else { } else {
toExecute.createArgument().setValue(packageName); toExecute.createArgument().setValue(packageName);
} }
@@ -2194,10 +2194,11 @@ public class Javadoc extends Task {
if (File.separatorChar == '\\') { if (File.separatorChar == '\\') {
name = sourceFileName.replace(File.separatorChar, '/'); name = sourceFileName.replace(File.separatorChar, '/');
} }
srcListWriter.println("\"" + name + "\"");
srcListWriter.write("\"" + name + "\"");
} else { } else {
srcListWriter.println(sourceFileName);
srcListWriter.write(sourceFileName);
} }
srcListWriter.newLine();
} else { } else {
toExecute.createArgument().setValue(sourceFileName); toExecute.createArgument().setValue(sourceFileName);
} }


+ 5
- 4
src/main/org/apache/tools/ant/taskdefs/Jikes.java View File

@@ -17,10 +17,10 @@
*/ */
package org.apache.tools.ant.taskdefs; package org.apache.tools.ant.taskdefs;


import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
@@ -83,13 +83,14 @@ public class Jikes {


if (myos.toLowerCase().indexOf("windows") >= 0 if (myos.toLowerCase().indexOf("windows") >= 0
&& args.length > MAX_FILES_ON_COMMAND_LINE) { && args.length > MAX_FILES_ON_COMMAND_LINE) {
PrintWriter out = null;
BufferedWriter out = null;
try { try {
tmpFile = FileUtils.getFileUtils().createTempFile("jikes", tmpFile = FileUtils.getFileUtils().createTempFile("jikes",
"tmp", null, false, true); "tmp", null, false, true);
out = new PrintWriter(new FileWriter(tmpFile));
out = new BufferedWriter(new FileWriter(tmpFile));
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
out.println(args[i]);
out.write(args[i]);
out.newLine();
} }
out.flush(); out.flush();
commandArray = new String[] {command, commandArray = new String[] {command,


+ 6
- 5
src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java View File

@@ -21,10 +21,10 @@ package org.apache.tools.ant.taskdefs.compilers;
//Java5 style //Java5 style
//import static org.apache.tools.ant.util.StringUtils.LINE_SEP; //import static org.apache.tools.ant.util.StringUtils.LINE_SEP;


import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Location; import org.apache.tools.ant.Location;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
@@ -467,18 +467,19 @@ public abstract class DefaultCompilerAdapter implements CompilerAdapter {
*/ */
if (Commandline.toString(args).length() > COMMAND_LINE_LIMIT if (Commandline.toString(args).length() > COMMAND_LINE_LIMIT
&& firstFileName >= 0) { && firstFileName >= 0) {
PrintWriter out = null;
BufferedWriter out = null;
try { try {
tmpFile = FILE_UTILS.createTempFile( tmpFile = FILE_UTILS.createTempFile(
"files", "", getJavac().getTempdir(), true, true); "files", "", getJavac().getTempdir(), true, true);
out = new PrintWriter(new FileWriter(tmpFile));
out = new BufferedWriter(new FileWriter(tmpFile));
for (int i = firstFileName; i < args.length; i++) { for (int i = firstFileName; i < args.length; i++) {
if (quoteFiles && args[i].indexOf(" ") > -1) { if (quoteFiles && args[i].indexOf(" ") > -1) {
args[i] = args[i].replace(File.separatorChar, '/'); args[i] = args[i].replace(File.separatorChar, '/');
out.println("\"" + args[i] + "\"");
out.write("\"" + args[i] + "\"");
} else { } else {
out.println(args[i]);
out.write(args[i]);
} }
out.newLine();
} }
out.flush(); out.flush();
commandArray = new String[firstFileName + 1]; commandArray = new String[firstFileName + 1];


+ 9
- 7
src/main/org/apache/tools/ant/taskdefs/email/Message.java View File

@@ -18,12 +18,12 @@
package org.apache.tools.ant.taskdefs.email; package org.apache.tools.ant.taskdefs.email;


import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.PrintWriter;


import org.apache.tools.ant.ProjectComponent; import org.apache.tools.ant.ProjectComponent;


@@ -114,10 +114,10 @@ public class Message extends ProjectComponent {
public void print(PrintStream ps) public void print(PrintStream ps)
throws IOException { throws IOException {
// We need character encoding aware printing here. // We need character encoding aware printing here.
// So, using PrintWriter over OutputStreamWriter instead of PrintStream
PrintWriter out
= charset != null ? new PrintWriter(new OutputStreamWriter(ps, charset))
: new PrintWriter(ps);
// So, using BufferedWriter over OutputStreamWriter instead of PrintStream
BufferedWriter out
= charset != null ? new BufferedWriter(new OutputStreamWriter(ps, charset))
: new BufferedWriter(new OutputStreamWriter(ps));
if (messageSource != null) { if (messageSource != null) {
// Read message from a file // Read message from a file
FileReader freader = new FileReader(messageSource); FileReader freader = new FileReader(messageSource);
@@ -126,13 +126,15 @@ public class Message extends ProjectComponent {
BufferedReader in = new BufferedReader(freader); BufferedReader in = new BufferedReader(freader);
String line = null; String line = null;
while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) {
out.println(getProject().replaceProperties(line));
out.write(getProject().replaceProperties(line));
out.newLine();
} }
} finally { } finally {
freader.close(); freader.close();
} }
} else { } else {
out.println(getProject().replaceProperties(buffer.substring(0)));
out.write(getProject().replaceProperties(buffer.substring(0)));
out.newLine();
} }
out.flush(); out.flush();
} }


+ 5
- 4
src/main/org/apache/tools/ant/taskdefs/optional/Cab.java View File

@@ -18,11 +18,11 @@


package org.apache.tools.ant.taskdefs.optional; package org.apache.tools.ant.taskdefs.optional;


import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Vector; import java.util.Vector;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
@@ -179,11 +179,12 @@ public class Cab extends MatchingTask {
throws IOException { throws IOException {
File listFile = FILE_UTILS.createTempFile("ant", "", null, true, true); File listFile = FILE_UTILS.createTempFile("ant", "", null, true, true);


PrintWriter writer = new PrintWriter(new FileOutputStream(listFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(listFile));


int size = files.size(); int size = files.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
writer.println('\"' + files.elementAt(i).toString() + '\"');
writer.write('\"' + files.elementAt(i).toString() + '\"');
writer.newLine();
} }
writer.close(); writer.close();




+ 10
- 12
src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java View File

@@ -27,7 +27,6 @@ import java.io.FileWriter;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader; import java.io.Reader;
import java.io.Writer; import java.io.Writer;
import java.util.Iterator; import java.util.Iterator;
@@ -368,7 +367,6 @@ public class ReplaceRegExp extends Task {


BufferedReader br = new BufferedReader(r); BufferedReader br = new BufferedReader(r);
BufferedWriter bw = new BufferedWriter(w); BufferedWriter bw = new BufferedWriter(w);
PrintWriter pw = new PrintWriter(bw);


boolean changes = false; boolean changes = false;


@@ -398,8 +396,8 @@ public class ReplaceRegExp extends Task {
changes = true; changes = true;
} }


pw.print(res);
pw.print('\r');
bw.write(res);
bw.write('\r');


linebuf = new StringBuffer(); linebuf = new StringBuffer();
// hasCR is still true (for the second one) // hasCR is still true (for the second one)
@@ -416,12 +414,12 @@ public class ReplaceRegExp extends Task {
changes = true; changes = true;
} }


pw.print(res);
bw.write(res);
if (hasCR) { if (hasCR) {
pw.print('\r');
bw.write('\r');
hasCR = false; hasCR = false;
} }
pw.print('\n');
bw.write('\n');


linebuf = new StringBuffer(); linebuf = new StringBuffer();
} else { // any other char } else { // any other char
@@ -434,9 +432,9 @@ public class ReplaceRegExp extends Task {
changes = true; changes = true;
} }


pw.print(res);
bw.write(res);
if (hasCR) { if (hasCR) {
pw.print('\r');
bw.write('\r');
hasCR = false; hasCR = false;
} }


@@ -449,7 +447,7 @@ public class ReplaceRegExp extends Task {
} }
} while (c >= 0); } while (c >= 0);


pw.flush();
bw.flush();
} else { } else {
String buf = FileUtils.safeReadFully(br); String buf = FileUtils.safeReadFully(br);


@@ -459,8 +457,8 @@ public class ReplaceRegExp extends Task {
changes = true; changes = true;
} }


pw.print(res);
pw.flush();
bw.write(res);
bw.flush();
} }


r.close(); r.close();


+ 7
- 5
src/main/org/apache/tools/ant/taskdefs/optional/depend/Depend.java View File

@@ -18,11 +18,11 @@
package org.apache.tools.ant.taskdefs.optional.depend; package org.apache.tools.ant.taskdefs.optional.depend;


import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL; import java.net.URL;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.Hashtable; import java.util.Hashtable;
@@ -216,23 +216,25 @@ public class Depend extends MatchingTask {
private void writeCachedDependencies(Hashtable dependencyMap) private void writeCachedDependencies(Hashtable dependencyMap)
throws IOException { throws IOException {
if (cache != null) { if (cache != null) {
PrintWriter pw = null;
BufferedWriter pw = null;
try { try {
cache.mkdirs(); cache.mkdirs();
File depFile = new File(cache, CACHE_FILE_NAME); File depFile = new File(cache, CACHE_FILE_NAME);


pw = new PrintWriter(new FileWriter(depFile));
pw = new BufferedWriter(new FileWriter(depFile));
Enumeration e = dependencyMap.keys(); Enumeration e = dependencyMap.keys();
while (e.hasMoreElements()) { while (e.hasMoreElements()) {
String className = (String) e.nextElement(); String className = (String) e.nextElement();


pw.println(CLASSNAME_PREPEND + className);
pw.write(CLASSNAME_PREPEND + className);
pw.newLine();


Vector dependencyList Vector dependencyList
= (Vector) dependencyMap.get(className); = (Vector) dependencyMap.get(className);
int size = dependencyList.size(); int size = dependencyList.size();
for (int x = 0; x < size; x++) { for (int x = 0; x < size; x++) {
pw.println(dependencyList.elementAt(x));
pw.write(String.valueOf(dependencyList.elementAt(x)));
pw.newLine();
} }
} }
} finally { } finally {


+ 27
- 12
src/main/org/apache/tools/ant/taskdefs/optional/junit/BriefJUnitResultFormatter.java View File

@@ -18,14 +18,16 @@


package org.apache.tools.ant.taskdefs.optional.junit; package org.apache.tools.ant.taskdefs.optional.junit;


import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.text.NumberFormat; import java.text.NumberFormat;


import junit.framework.AssertionFailedError; import junit.framework.AssertionFailedError;
import junit.framework.Test; import junit.framework.Test;


import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.StringUtils; import org.apache.tools.ant.util.StringUtils;


@@ -48,7 +50,7 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
/** /**
* Used for writing the results. * Used for writing the results.
*/ */
private PrintWriter output;
private BufferedWriter output;


/** /**
* Used as part of formatting the results. * Used as part of formatting the results.
@@ -58,7 +60,7 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
/** /**
* Used for writing formatted results to. * Used for writing formatted results to.
*/ */
private PrintWriter resultWriter;
private BufferedWriter resultWriter;


/** /**
* Formatter for timings. * Formatter for timings.
@@ -80,7 +82,7 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
*/ */
public BriefJUnitResultFormatter() { public BriefJUnitResultFormatter() {
results = new StringWriter(); results = new StringWriter();
resultWriter = new PrintWriter(results);
resultWriter = new BufferedWriter(results);
} }


/** /**
@@ -89,7 +91,7 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
*/ */
public void setOutput(OutputStream out) { public void setOutput(OutputStream out) {
this.out = out; this.out = out;
output = new PrintWriter(out);
output = new BufferedWriter(new java.io.OutputStreamWriter(out));
} }


/** /**
@@ -120,8 +122,12 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
StringBuffer sb = new StringBuffer("Testsuite: "); StringBuffer sb = new StringBuffer("Testsuite: ");
sb.append(suite.getName()); sb.append(suite.getName());
sb.append(StringUtils.LINE_SEP); sb.append(StringUtils.LINE_SEP);
output.write(sb.toString());
output.flush();
try {
output.write(sb.toString());
output.flush();
} catch (IOException ex) {
throw new BuildException(ex);
}
} }


/** /**
@@ -164,6 +170,8 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
resultWriter.close(); resultWriter.close();
output.write(results.toString()); output.write(results.toString());
output.flush(); output.flush();
} catch (IOException ex) {
throw new BuildException(ex);
} finally { } finally {
if (out != System.out && out != System.err) { if (out != System.out && out != System.err) {
FileUtils.close(out); FileUtils.close(out);
@@ -242,10 +250,17 @@ public class BriefJUnitResultFormatter implements JUnitResultFormatter {
endTest(test); endTest(test);
} }


resultWriter.println(formatTest(test) + type);
resultWriter.println(error.getMessage());
String strace = JUnitTestRunner.getFilteredTrace(error);
resultWriter.println(strace);
resultWriter.println();
try {
resultWriter.write(formatTest(test) + type);
resultWriter.newLine();
resultWriter.write(error.getMessage());
resultWriter.newLine();
String strace = JUnitTestRunner.getFilteredTrace(error);
resultWriter.write(strace);
resultWriter.newLine();
resultWriter.newLine();
} catch (IOException ex) {
throw new BuildException(ex);
}
} }
} }

+ 40
- 28
src/main/org/apache/tools/ant/taskdefs/optional/junit/FailureRecorder.java View File

@@ -17,11 +17,11 @@
*/ */
package org.apache.tools.ant.taskdefs.optional.junit; package org.apache.tools.ant.taskdefs.optional.junit;


import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.Iterator; import java.util.Iterator;
@@ -90,7 +90,7 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm
private static SortedSet/*<TestInfos>*/ failedTests = new TreeSet(); private static SortedSet/*<TestInfos>*/ failedTests = new TreeSet();


/** A writer for writing the generated source to. */ /** A writer for writing the generated source to. */
private PrintWriter writer;
private BufferedWriter writer;


/** /**
* Location and name of the generated JUnit class. * Location and name of the generated JUnit class.
@@ -249,54 +249,66 @@ public class FailureRecorder extends ProjectComponent implements JUnitResultForm
verbose("Write collector class to '" + sourceFile.getAbsolutePath() + "'"); verbose("Write collector class to '" + sourceFile.getAbsolutePath() + "'");


sourceFile.delete(); sourceFile.delete();
writer = new PrintWriter(new FileOutputStream(sourceFile));
writer = new BufferedWriter(new FileWriter(sourceFile));


createClassHeader(); createClassHeader();
createSuiteMethod(); createSuiteMethod();
createClassFooter(); createClassFooter();


FileUtils.close(writer); FileUtils.close(writer);
} catch (FileNotFoundException e) {
} catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }


private void createClassHeader() {
private void createClassHeader() throws IOException {
String className = getLocationName().replace('\\', '/'); String className = getLocationName().replace('\\', '/');
if (className.indexOf('/') > -1) { if (className.indexOf('/') > -1) {
className = className.substring(className.lastIndexOf('/') + 1); className = className.substring(className.lastIndexOf('/') + 1);
} }
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss,SSS"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss,SSS");
writer.print("// generated on: ");
writer.println(sdf.format(new Date()));
writer.println("import junit.framework.*;");
writer.print("public class ");
writer.print(className);
writer.write("// generated on: ");
writer.write(sdf.format(new Date()));
writer.newLine();
writer.write("import junit.framework.*;");
writer.newLine();
writer.write("public class ");
writer.write(className);
// If this class does not extend TC, Ant doesnt run these // If this class does not extend TC, Ant doesnt run these
writer.println(" extends TestCase {");
writer.write(" extends TestCase {");
writer.newLine();
// standard String-constructor // standard String-constructor
writer.print(" public ");
writer.print(className);
writer.println("(String testname) {");
writer.println(" super(testname);");
writer.println(" }");
writer.write(" public ");
writer.write(className);
writer.write("(String testname) {");
writer.newLine();
writer.write(" super(testname);");
writer.newLine();
writer.write(" }");
writer.newLine();
} }


private void createSuiteMethod() {
writer.println(" public static Test suite() {");
writer.println(" TestSuite suite = new TestSuite();");
private void createSuiteMethod() throws IOException {
writer.write(" public static Test suite() {");
writer.newLine();
writer.write(" TestSuite suite = new TestSuite();");
writer.newLine();
for (Iterator iter = failedTests.iterator(); iter.hasNext();) { for (Iterator iter = failedTests.iterator(); iter.hasNext();) {
TestInfos testInfos = (TestInfos) iter.next(); TestInfos testInfos = (TestInfos) iter.next();
writer.print(" suite.addTest(");
writer.print(testInfos);
writer.println(");");
writer.write(" suite.addTest(");
writer.write(String.valueOf(testInfos));
writer.write(");");
writer.newLine();
} }
writer.println(" return suite;");
writer.println(" }");
writer.write(" return suite;");
writer.newLine();
writer.write(" }");
writer.newLine();
} }


private void createClassFooter() {
writer.println("}");
private void createClassFooter() throws IOException {
writer.write("}");
writer.newLine();
} }


// ===== Helper classes and methods ===== // ===== Helper classes and methods =====


+ 7
- 7
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java View File

@@ -27,7 +27,6 @@ import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.PrintWriter;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
@@ -849,10 +848,10 @@ public class JUnitTask extends Task {
// Create a temporary file to pass the test cases to run to // Create a temporary file to pass the test cases to run to
// the runner (one test case per line) // the runner (one test case per line)
File casesFile = createTempPropertiesFile("junittestcases"); File casesFile = createTempPropertiesFile("junittestcases");
PrintWriter writer = null;
BufferedWriter writer = null;
try { try {
writer = writer =
new PrintWriter(new BufferedWriter(new FileWriter(casesFile)));
new BufferedWriter(new BufferedWriter(new FileWriter(casesFile)));


log("Creating casesfile '" + casesFile.getAbsolutePath() log("Creating casesfile '" + casesFile.getAbsolutePath()
+ "' with content: ", Project.MSG_VERBOSE); + "' with content: ", Project.MSG_VERBOSE);
@@ -1969,15 +1968,16 @@ public class JUnitTask extends Task {
return t; return t;
} }


private static void printDual(PrintWriter w, PrintStream s, String text)
private static void printDual(BufferedWriter w, PrintStream s, String text)
throws IOException { throws IOException {
w.print(text);
w.write(text);
s.print(text); s.print(text);
} }


private static void printlnDual(PrintWriter w, PrintStream s, String text)
private static void printlnDual(BufferedWriter w, PrintStream s, String text)
throws IOException { throws IOException {
w.println(text);
w.write(text);
w.newLine();
s.println(text); s.println(text);
} }
} }

+ 4
- 3
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java View File

@@ -19,6 +19,7 @@
package org.apache.tools.ant.taskdefs.optional.junit; package org.apache.tools.ant.taskdefs.optional.junit;


import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@@ -26,7 +27,6 @@ import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintStream; import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringReader; import java.io.StringReader;
import java.io.StringWriter; import java.io.StringWriter;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -878,7 +878,7 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR
return stack; return stack;
} }
StringWriter sw = new StringWriter(); StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
BufferedWriter pw = new BufferedWriter(sw);
StringReader sr = new StringReader(stack); StringReader sr = new StringReader(stack);
BufferedReader br = new BufferedReader(sr); BufferedReader br = new BufferedReader(sr);


@@ -886,7 +886,8 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR
try { try {
while ((line = br.readLine()) != null) { while ((line = br.readLine()) != null) {
if (!filterLine(line)) { if (!filterLine(line)) {
pw.println(line);
pw.write(line);
pw.newLine();
} }
} }
} catch (Exception e) { } catch (Exception e) {


+ 20
- 9
src/main/org/apache/tools/ant/taskdefs/optional/junit/PlainJUnitResultFormatter.java View File

@@ -18,9 +18,9 @@


package org.apache.tools.ant.taskdefs.optional.junit; package org.apache.tools.ant.taskdefs.optional.junit;


import java.io.BufferedWriter;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.Hashtable; import java.util.Hashtable;
@@ -61,7 +61,7 @@ public class PlainJUnitResultFormatter implements JUnitResultFormatter {
/** /**
* Convenience layer on top of {@link #inner inner}. * Convenience layer on top of {@link #inner inner}.
*/ */
private PrintWriter wri;
private BufferedWriter wri;
/** /**
* Suppress endTest if testcase failed. * Suppress endTest if testcase failed.
*/ */
@@ -73,7 +73,7 @@ public class PlainJUnitResultFormatter implements JUnitResultFormatter {
/** No arg constructor */ /** No arg constructor */
public PlainJUnitResultFormatter() { public PlainJUnitResultFormatter() {
inner = new StringWriter(); inner = new StringWriter();
wri = new PrintWriter(inner);
wri = new BufferedWriter(inner);
} }


/** {@inheritDoc}. */ /** {@inheritDoc}. */
@@ -185,7 +185,8 @@ public class PlainJUnitResultFormatter implements JUnitResultFormatter {
return; return;
} }
synchronized (wri) { synchronized (wri) {
wri.print("Testcase: "
try {
wri.write("Testcase: "
+ JUnitVersionHelper.getTestCaseName(test)); + JUnitVersionHelper.getTestCaseName(test));
Long l = (Long) testStarts.get(test); Long l = (Long) testStarts.get(test);
double seconds = 0; double seconds = 0;
@@ -195,7 +196,11 @@ public class PlainJUnitResultFormatter implements JUnitResultFormatter {
(System.currentTimeMillis() - l.longValue()) / ONE_SECOND; (System.currentTimeMillis() - l.longValue()) / ONE_SECOND;
} }


wri.println(" took " + nf.format(seconds) + " sec");
wri.write(" took " + nf.format(seconds) + " sec");
wri.newLine();
} catch (IOException ex) {
throw new BuildException(ex);
}
} }
} }


@@ -239,11 +244,17 @@ public class PlainJUnitResultFormatter implements JUnitResultFormatter {
failed.put(test, Boolean.TRUE); failed.put(test, Boolean.TRUE);
} }


wri.println(type);
wri.println(t.getMessage());
try {
wri.write(type);
wri.newLine();
wri.write(t.getMessage());
wri.newLine();
String strace = JUnitTestRunner.getFilteredTrace(t); String strace = JUnitTestRunner.getFilteredTrace(t);
wri.print(strace);
wri.println("");
wri.write(strace);
wri.newLine();
} catch (IOException ex) {
throw new BuildException(ex);
}
} }
} }




+ 5
- 4
src/main/org/apache/tools/ant/util/JavaEnvUtils.java View File

@@ -17,9 +17,9 @@
*/ */
package org.apache.tools.ant.util; package org.apache.tools.ant.util;


import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.util.Vector; import java.util.Vector;
@@ -441,11 +441,12 @@ public final class JavaEnvUtils {
public static File createVmsJavaOptionFile(String[] cmd) public static File createVmsJavaOptionFile(String[] cmd)
throws IOException { throws IOException {
File script = FILE_UTILS.createTempFile("ANT", ".JAVA_OPTS", null, false, true); File script = FILE_UTILS.createTempFile("ANT", ".JAVA_OPTS", null, false, true);
PrintWriter out = null;
BufferedWriter out = null;
try { try {
out = new PrintWriter(new BufferedWriter(new FileWriter(script)));
out = new BufferedWriter(new FileWriter(script));
for (int i = 0; i < cmd.length; i++) { for (int i = 0; i < cmd.length; i++) {
out.println(cmd[i]);
out.write(cmd[i]);
out.newLine();
} }
} finally { } finally {
FileUtils.close(out); FileUtils.close(out);


Loading…
Cancel
Save