Close the buffered reader

(cherry picked from commit dac1190)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/f8fee106
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/f8fee106
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/f8fee106

Branch: refs/heads/GROOVY_2_6_X
Commit: f8fee106450734b70fae69f90f62e436b4cf375a
Parents: e3240d1
Author: sunlan <[email protected]>
Authored: Tue Dec 5 08:39:15 2017 +0800
Committer: sunlan <[email protected]>
Committed: Tue Dec 5 09:58:46 2017 +0800

----------------------------------------------------------------------
 .../codehaus/groovy/tools/FileSystemCompiler.java | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/f8fee106/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java 
b/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java
index 26151a2..55d0ee3 100644
--- a/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java
+++ b/src/main/org/codehaus/groovy/tools/FileSystemCompiler.java
@@ -240,15 +240,25 @@ public class FileSystemCompiler {
         boolean errors = false;
         for (String filename : filenames) {
             if (filename.startsWith("@")) {
+                String fn = filename.substring(1);
+                BufferedReader br = null;
                 try {
-                    BufferedReader br = new BufferedReader(new 
FileReader(filename.substring(1)));
-                    String file;
-                    while ((file = br.readLine()) != null) {
+                    br = new BufferedReader(new FileReader(fn));
+                    for (String file; (file = br.readLine()) != null; ) {
                         fileList.add(file);
                     }
                 } catch (IOException ioe) {
-                    System.err.println("error: file not readable: " + 
filename.substring(1));
+                    System.err.println("error: file not readable: " + fn);
                     errors = true;
+                } finally {
+                    if (null != br) {
+                        try {
+                            br.close();
+                        } catch (IOException e) {
+                            System.err.println("error: failed to close 
buffered reader: " + fn);
+                            errors = true;
+                        }
+                    }
                 }
             } else {
                 fileList.add(filename);

Reply via email to