Author: markt
Date: Sun Jul 26 18:53:58 2015
New Revision: 1692747

URL: http://svn.apache.org/r1692747
Log:
Fix resource leak spotted by Eclipse by using try-with-resources
Modified:
    tomcat/trunk/java/org/apache/jasper/JspC.java

Modified: tomcat/trunk/java/org/apache/jasper/JspC.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/JspC.java?rev=1692747&r1=1692746&r2=1692747&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jasper/JspC.java (original)
+++ tomcat/trunk/java/org/apache/jasper/JspC.java Sun Jul 26 18:53:58 2015
@@ -1054,79 +1054,74 @@ public class JspC extends Task implement
         String insertEndMarker =
             Localizer.getMessage("jspc.webinc.insertEnd");
 
-        BufferedReader reader = new BufferedReader(openWebxmlReader(webXml));
-        BufferedReader fragmentReader = new BufferedReader(
-                openWebxmlReader(new File(webxmlFile)));
-        PrintWriter writer = new PrintWriter(openWebxmlWriter(webXml2));
-
-        // Insert the <servlet> and <servlet-mapping> declarations
-        boolean inserted = false;
-        int current = reader.read();
-        while (current > -1) {
-            if (current == '<') {
-                String element = getElement(reader);
-                if (!inserted && insertBefore.contains(element)) {
-                    // Insert generated content here
-                    writer.println(insertStartMarker);
-                    while (true) {
-                        String line = fragmentReader.readLine();
-                        if (line == null) {
-                            writer.println();
-                            break;
-                        }
-                        writer.println(line);
-                    }
-                    writer.println(insertEndMarker);
-                    writer.println();
-                    writer.write(element);
-                    inserted = true;
-                } else if (element.equals(insertStartMarker)) {
-                    // Skip the previous auto-generated content
-                    while (true) {
-                        current = reader.read();
-                        if (current < 0) {
-                            throw new EOFException();
-                        }
-                        if (current == '<') {
-                            element = getElement(reader);
-                            if (element.equals(insertEndMarker)) {
+        try (BufferedReader reader = new 
BufferedReader(openWebxmlReader(webXml));
+                BufferedReader fragmentReader =
+                        new BufferedReader(openWebxmlReader(new 
File(webxmlFile)));
+                PrintWriter writer = new 
PrintWriter(openWebxmlWriter(webXml2))) {
+
+            // Insert the <servlet> and <servlet-mapping> declarations
+            boolean inserted = false;
+            int current = reader.read();
+            while (current > -1) {
+                if (current == '<') {
+                    String element = getElement(reader);
+                    if (!inserted && insertBefore.contains(element)) {
+                        // Insert generated content here
+                        writer.println(insertStartMarker);
+                        while (true) {
+                            String line = fragmentReader.readLine();
+                            if (line == null) {
+                                writer.println();
                                 break;
                             }
+                            writer.println(line);
+                        }
+                        writer.println(insertEndMarker);
+                        writer.println();
+                        writer.write(element);
+                        inserted = true;
+                    } else if (element.equals(insertStartMarker)) {
+                        // Skip the previous auto-generated content
+                        while (true) {
+                            current = reader.read();
+                            if (current < 0) {
+                                throw new EOFException();
+                            }
+                            if (current == '<') {
+                                element = getElement(reader);
+                                if (element.equals(insertEndMarker)) {
+                                    break;
+                                }
+                            }
                         }
-                    }
-                    current = reader.read();
-                    while (current == '\n' || current == '\r') {
                         current = reader.read();
+                        while (current == '\n' || current == '\r') {
+                            current = reader.read();
+                        }
+                        continue;
+                    } else {
+                        writer.write(element);
                     }
-                    continue;
                 } else {
-                    writer.write(element);
+                    writer.write(current);
                 }
-            } else {
-                writer.write(current);
+                current = reader.read();
             }
-            current = reader.read();
         }
-        writer.close();
 
-        reader.close();
-        fragmentReader.close();
+        try (FileInputStream fis = new FileInputStream(webXml2);
+                FileOutputStream fos = new FileOutputStream(webXml)) {
 
-        FileInputStream fis = new FileInputStream(webXml2);
-        FileOutputStream fos = new FileOutputStream(webXml);
-
-        byte buf[] = new byte[512];
-        while (true) {
-            int n = fis.read(buf);
-            if (n < 0) {
-                break;
+            byte buf[] = new byte[512];
+            while (true) {
+                int n = fis.read(buf);
+                if (n < 0) {
+                    break;
+                }
+                fos.write(buf, 0, n);
             }
-            fos.write(buf, 0, n);
         }
 
-        fis.close();
-        fos.close();
-
         if(!webXml2.delete() && log.isDebugEnabled())
             log.debug(Localizer.getMessage("jspc.delete.fail",
                     webXml2.toString()));



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to