Browse Source

#52743: stream leak.

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@1294780 13f79535-47bb-0310-9956-ffa450edef68
master
Jesse N. Glick 13 years ago
parent
commit
246b80980f
2 changed files with 17 additions and 26 deletions
  1. +1
    -1
      WHATSNEW
  2. +16
    -25
      src/main/org/apache/tools/ant/taskdefs/optional/ReplaceRegExp.java

+ 1
- 1
WHATSNEW View File

@@ -12,7 +12,7 @@ Fixed bugs:
Bugzilla Report 52754. Bugzilla Report 52754.


* Fixed some potential stream leaks. * Fixed some potential stream leaks.
Bugzilla Reports 52738, 52740, 52742.
Bugzilla Reports 52738, 52740, 52742, 52743.


Other changes: Other changes:
-------------- --------------


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

@@ -21,11 +21,11 @@ import java.io.BufferedReader;
import java.io.BufferedWriter; import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.Reader; import java.io.Reader;
import java.io.Writer; import java.io.Writer;
@@ -351,23 +351,16 @@ public class ReplaceRegExp extends Task {
protected void doReplace(File f, int options) protected void doReplace(File f, int options)
throws IOException { throws IOException {
File temp = FILE_UTILS.createTempFile("replace", ".txt", null, true, true); File temp = FILE_UTILS.createTempFile("replace", ".txt", null, true, true);

Reader r = null;
Writer w = null;
BufferedWriter bw = null;

try { try {
if (encoding == null) {
r = new FileReader(f);
w = new FileWriter(temp);
} else {
r = new InputStreamReader(new FileInputStream(f), encoding);
w = new OutputStreamWriter(new FileOutputStream(temp),
encoding);
}
InputStream is = new FileInputStream(f);
try {
Reader r = encoding != null ? new InputStreamReader(is, encoding) : new InputStreamReader(is);
OutputStream os = new FileOutputStream(temp);
try {
Writer w = encoding != null ? new OutputStreamWriter(os, encoding) : new OutputStreamWriter(os);


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


boolean changes = false; boolean changes = false;


@@ -462,11 +455,6 @@ public class ReplaceRegExp extends Task {


bw.flush(); bw.flush();


r.close();
r = null;
w.close();
w = null;

if (changes) { if (changes) {
log("File has changed; saving the updated file", Project.MSG_VERBOSE); log("File has changed; saving the updated file", Project.MSG_VERBOSE);
try { try {
@@ -483,10 +471,13 @@ public class ReplaceRegExp extends Task {
} else { } else {
log("No change made", Project.MSG_DEBUG); log("No change made", Project.MSG_DEBUG);
} }
} finally {
os.close();
}
} finally {
is.close();
}
} finally { } finally {
FileUtils.close(r);
FileUtils.close(bw);
FileUtils.close(w);
if (temp != null) { if (temp != null) {
temp.delete(); temp.delete();
} }


Loading…
Cancel
Save