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