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/04e3d1db
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/04e3d1db
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/04e3d1db

Branch: refs/heads/GROOVY_2_5_X
Commit: 04e3d1db648bf012449dc74c86f70284304e4b70
Parents: 17c180a
Author: sunlan <[email protected]>
Authored: Tue Dec 5 08:39:15 2017 +0800
Committer: sunlan <[email protected]>
Committed: Tue Dec 5 09:59:47 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/04e3d1db/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