You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2015/12/17 16:11:43 UTC

svn commit: r1720598 - in /tomcat/tc7.0.x/trunk/java/org/apache/jasper: JspC.java compiler/SmapUtil.java

Author: violetagg
Date: Thu Dec 17 15:11:43 2015
New Revision: 1720598

URL: http://svn.apache.org/viewvc?rev=1720598&view=rev
Log:
Close streams.
This is not needed for later versions as there these issues are fixed.

Modified:
    tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java
    tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/SmapUtil.java

Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java?rev=1720598&r1=1720597&r2=1720598&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/JspC.java Thu Dec 17 15:11:43 2015
@@ -1060,79 +1060,110 @@ 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)) {
+        BufferedReader reader = null;
+        BufferedReader fragmentReader = null;
+        PrintWriter writer = null;
+        try {
+            reader = new BufferedReader(openWebxmlReader(webXml));
+            fragmentReader = new BufferedReader(openWebxmlReader(new File(webxmlFile)));
+            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);
+                }
+                current = reader.read();
+            }
+        } finally {
+            if (writer != null) {
+                try {
+                    writer.close();
+                } catch (Exception e) {
+                }
+            }
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (Exception e) {
+                }
+            }
+            if (fragmentReader != null) {
+                try {
+                    fragmentReader.close();
+                } catch (Exception e) {
                 }
-            } else {
-                writer.write(current);
             }
-            current = reader.read();
         }
-        writer.close();
-
-        reader.close();
-        fragmentReader.close();
-
-        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;
+        FileInputStream fis = null;
+        FileOutputStream fos = null;
+        try {
+            fis = new FileInputStream(webXml2);
+            fos = new FileOutputStream(webXml);
+            byte buf[] = new byte[512];
+            while (true) {
+                int n = fis.read(buf);
+                if (n < 0) {
+                    break;
+                }
+                fos.write(buf, 0, n);
+            }
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                } catch (Exception e) {
+                }
+            }
+            if (fos != null) {
+                try {
+                    fos.close();
+                } catch (Exception e) {
+                }
             }
-            fos.write(buf, 0, n);
         }
 
-        fis.close();
-        fos.close();
-
         if(!webXml2.delete() && log.isDebugEnabled())
             log.debug(Localizer.getMessage("jspc.delete.fail",
                     webXml2.toString()));

Modified: tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/SmapUtil.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/SmapUtil.java?rev=1720598&r1=1720597&r2=1720598&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/SmapUtil.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/jasper/compiler/SmapUtil.java Thu Dec 17 15:11:43 2015
@@ -226,19 +226,31 @@ public class SmapUtil {
                 outStream.write(gen, 0, genPos);
             } finally {
                 if (outStream != null) {
-                    outStream.close();
+                    try {
+                        outStream.close();
+                    } catch (Exception e) {
+                    }
                 }
             }
         }
 
         static byte[] readWhole(File input) throws IOException {
-            FileInputStream inStream = new FileInputStream(input);
             int len = (int)input.length();
             byte[] bytes = new byte[len];
-            if (inStream.read(bytes, 0, len) != len) {
-                throw new IOException("expected size: " + len);
+            FileInputStream inStream = null;
+            try {
+                inStream = new FileInputStream(input);
+                if (inStream.read(bytes, 0, len) != len) {
+                    throw new IOException("expected size: " + len);
+                }
+            } finally {
+                if (inStream != null) {
+                    try {
+                        inStream.close();
+                    } catch (Exception e) {
+                    }
+                }
             }
-            inStream.close();
             return bytes;
         }
 



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