Author: markt
Date: Wed Mar 26 21:22:31 2014
New Revision: 1582064

URL: http://svn.apache.org/r1582064
Log:
Complete first pass of try-with-resources

Modified:
    tomcat/trunk/TOMCAT-NEXT.txt
    tomcat/trunk/java/org/apache/juli/FileHandler.java
    tomcat/trunk/java/org/apache/tomcat/buildutil/CheckEol.java
    tomcat/trunk/java/org/apache/tomcat/util/modeler/NotificationInfo.java
    tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
    tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java
    tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
    tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java
    
tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java
    
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
    
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java
    tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
    tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
    tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java
    tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
    tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java

Modified: tomcat/trunk/TOMCAT-NEXT.txt
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/TOMCAT-NEXT.txt?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/TOMCAT-NEXT.txt (original)
+++ tomcat/trunk/TOMCAT-NEXT.txt Wed Mar 26 21:22:31 2014
@@ -212,11 +212,7 @@ but possibly 7.1.x).
     - Use of <> operator where possible
       - Complete
     - Use of try with resources
-      - Started.
-        - javax.* complete
-        - o.a.[catalina to jasper ] complete
-        - o.a.juli in progress
-        - remainder TODO
+      - Complete
     - Catching multiple exceptions
       - Started
         - javax.[annotation to el] complete

Modified: tomcat/trunk/java/org/apache/juli/FileHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/FileHandler.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/juli/FileHandler.java (original)
+++ tomcat/trunk/java/org/apache/juli/FileHandler.java Wed Mar 26 21:22:31 2014
@@ -169,15 +169,14 @@ public class FileHandler
         String tsString = ts.toString().substring(0, 19);
         String tsDate = tsString.substring(0, 10);
 
+        writerLock.readLock().lock();
         try {
-            writerLock.readLock().lock();
             // If the date has changed, switch log files
             if (rotatable && !date.equals(tsDate)) {
+                // Upgrade to writeLock before we switch
+                writerLock.readLock().unlock();
+                writerLock.writeLock().lock();
                 try {
-                    // Update to writeLock before we switch
-                    writerLock.readLock().unlock();
-                    writerLock.writeLock().lock();
-
                     // Make sure another thread hasn't already done this
                     if (!date.equals(tsDate)) {
                         closeWriter();
@@ -185,10 +184,10 @@ public class FileHandler
                         openWriter();
                     }
                 } finally {
-                    writerLock.writeLock().unlock();
-                    // Down grade to read-lock. This ensures the writer 
remains valid
+                    // Downgrade to read-lock. This ensures the writer remains 
valid
                     // until the log message is written
                     writerLock.readLock().lock();
+                    writerLock.writeLock().unlock();
                 }
             }
 
@@ -408,8 +407,5 @@ public class FileHandler
         } finally {
             writerLock.writeLock().unlock();
         }
-
     }
-
-
 }

Modified: tomcat/trunk/java/org/apache/tomcat/buildutil/CheckEol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/buildutil/CheckEol.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/buildutil/CheckEol.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/buildutil/CheckEol.java Wed Mar 26 
21:22:31 2014
@@ -136,11 +136,9 @@ public class CheckEol extends Task {
         }
     }
 
-    private void check(File file, List<CheckFailure> errors, Mode mode)
-            throws IOException {
-        BufferedInputStream is = new BufferedInputStream(new FileInputStream(
-                file));
-        try {
+    private void check(File file, List<CheckFailure> errors, Mode mode) throws 
IOException {
+        try (FileInputStream fis = new FileInputStream(file);
+                BufferedInputStream is = new BufferedInputStream(fis)) {
             int line = 1;
             int prev = -1;
             int ch;
@@ -160,8 +158,6 @@ public class CheckEol extends Task {
                 }
                 prev = ch;
             }
-        } finally {
-            is.close();
         }
     }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/modeler/NotificationInfo.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/modeler/NotificationInfo.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/modeler/NotificationInfo.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/modeler/NotificationInfo.java Wed 
Mar 26 21:22:31 2014
@@ -75,8 +75,8 @@ public class NotificationInfo extends Fe
      */
     public String[] getNotifTypes() {
         Lock readLock = notifTypesLock.readLock();
+        readLock.lock();
         try {
-            readLock.lock();
             return this.notifTypes;
         } finally {
             readLock.unlock();
@@ -95,8 +95,8 @@ public class NotificationInfo extends Fe
     public void addNotifType(String notifType) {
 
         Lock writeLock = notifTypesLock.writeLock();
+        writeLock.lock();
         try {
-            writeLock.lock();
 
             String results[] = new String[notifTypes.length + 1];
             System.arraycopy(notifTypes, 0, results, 0, notifTypes.length);
@@ -143,8 +143,8 @@ public class NotificationInfo extends Fe
         sb.append(description);
         sb.append(", notifTypes=");
         Lock readLock = notifTypesLock.readLock();
+        readLock.lock();
         try {
-            readLock.lock();
             sb.append(notifTypes.length);
         } finally {
             readLock.unlock();

Modified: tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java Wed Mar 
26 21:22:31 2014
@@ -103,8 +103,8 @@ public class OperationInfo extends Featu
      */
     public ParameterInfo[] getSignature() {
         Lock readLock = parametersLock.readLock();
+        readLock.lock();
         try {
-            readLock.lock();
             return this.parameters;
         } finally {
             readLock.unlock();
@@ -122,8 +122,8 @@ public class OperationInfo extends Featu
     public void addParameter(ParameterInfo parameter) {
 
         Lock writeLock = parametersLock.writeLock();
+        writeLock.lock();
         try {
-            writeLock.lock();
             ParameterInfo results[] = new ParameterInfo[parameters.length + 1];
             System.arraycopy(parameters, 0, results, 0, parameters.length);
             results[parameters.length] = parameter;

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Wed Mar 
26 21:22:31 2014
@@ -554,7 +554,6 @@ public abstract class AbstractEndpoint<S
             return;
         }
 
-        java.net.Socket s = null;
         InetSocketAddress saddr = null;
         try {
             // Need to create a connection to unlock the accept();
@@ -563,58 +562,51 @@ public abstract class AbstractEndpoint<S
             } else {
                 saddr = new InetSocketAddress(address, getLocalPort());
             }
-            s = new java.net.Socket();
-            int stmo = 2 * 1000;
-            int utmo = 2 * 1000;
-            if (getSocketProperties().getSoTimeout() > stmo)
-                stmo = getSocketProperties().getSoTimeout();
-            if (getSocketProperties().getUnlockTimeout() > utmo)
-                utmo = getSocketProperties().getUnlockTimeout();
-            s.setSoTimeout(stmo);
-            // TODO Consider hard-coding to s.setSoLinger(true,0)
-            
s.setSoLinger(getSocketProperties().getSoLingerOn(),getSocketProperties().getSoLingerTime());
-            if (getLog().isDebugEnabled()) {
-                getLog().debug("About to unlock socket for:"+saddr);
-            }
-            s.connect(saddr,utmo);
-            if (getDeferAccept()) {
-                /*
-                 * In the case of a deferred accept / accept filters we need to
-                 * send data to wake up the accept. Send OPTIONS * to bypass
-                 * even BSD accept filters. The Acceptor will discard it.
-                 */
-                OutputStreamWriter sw;
-
-                sw = new OutputStreamWriter(s.getOutputStream(), "ISO-8859-1");
-                sw.write("OPTIONS * HTTP/1.0\r\n" +
-                         "User-Agent: Tomcat wakeup connection\r\n\r\n");
-                sw.flush();
-            }
-            if (getLog().isDebugEnabled()) {
-                getLog().debug("Socket unlock completed for:"+saddr);
-            }
+            try (java.net.Socket s = new java.net.Socket()) {
+                int stmo = 2 * 1000;
+                int utmo = 2 * 1000;
+                if (getSocketProperties().getSoTimeout() > stmo)
+                    stmo = getSocketProperties().getSoTimeout();
+                if (getSocketProperties().getUnlockTimeout() > utmo)
+                    utmo = getSocketProperties().getUnlockTimeout();
+                s.setSoTimeout(stmo);
+                // TODO Consider hard-coding to s.setSoLinger(true,0)
+                
s.setSoLinger(getSocketProperties().getSoLingerOn(),getSocketProperties().getSoLingerTime());
+                if (getLog().isDebugEnabled()) {
+                    getLog().debug("About to unlock socket for:"+saddr);
+                }
+                s.connect(saddr,utmo);
+                if (getDeferAccept()) {
+                    /*
+                     * In the case of a deferred accept / accept filters we 
need to
+                     * send data to wake up the accept. Send OPTIONS * to 
bypass
+                     * even BSD accept filters. The Acceptor will discard it.
+                     */
+                    OutputStreamWriter sw;
+
+                    sw = new OutputStreamWriter(s.getOutputStream(), 
"ISO-8859-1");
+                    sw.write("OPTIONS * HTTP/1.0\r\n" +
+                             "User-Agent: Tomcat wakeup connection\r\n\r\n");
+                    sw.flush();
+                }
+                if (getLog().isDebugEnabled()) {
+                    getLog().debug("Socket unlock completed for:"+saddr);
+                }
 
-            // Wait for upto 1000ms acceptor threads to unlock
-            long waitLeft = 1000;
-            for (Acceptor acceptor : acceptors) {
-                while (waitLeft > 0 &&
-                        acceptor.getState() == AcceptorState.RUNNING) {
-                    Thread.sleep(50);
-                    waitLeft -= 50;
+                // Wait for upto 1000ms acceptor threads to unlock
+                long waitLeft = 1000;
+                for (Acceptor acceptor : acceptors) {
+                    while (waitLeft > 0 &&
+                            acceptor.getState() == AcceptorState.RUNNING) {
+                        Thread.sleep(50);
+                        waitLeft -= 50;
+                    }
                 }
             }
         } catch(Exception e) {
             if (getLog().isDebugEnabled()) {
                 getLog().debug(sm.getString("endpoint.debug.unlock", "" + 
getPort()), e);
             }
-        } finally {
-            if (s != null) {
-                try {
-                    s.close();
-                } catch (Exception e) {
-                    // Ignore
-                }
-            }
         }
     }
 

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java 
Wed Mar 26 21:22:31 2014
@@ -673,25 +673,17 @@ public class JSSESocketFactory implement
                     System.getProperty(Constants.CATALINA_BASE_PROP), crlf);
         }
         Collection<? extends CRL> crls = null;
-        InputStream is = null;
         try {
             CertificateFactory cf = CertificateFactory.getInstance("X.509");
-            is = new FileInputStream(crlFile);
-            crls = cf.generateCRLs(is);
+            try (InputStream is = new FileInputStream(crlFile)) {
+                crls = cf.generateCRLs(is);
+            }
         } catch(IOException iex) {
             throw iex;
         } catch(CRLException crle) {
             throw crle;
         } catch(CertificateException ce) {
             throw ce;
-        } finally {
-            if(is != null) {
-                try{
-                    is.close();
-                } catch(Exception ex) {
-                    // Ignore
-                }
-            }
         }
         return crls;
     }

Modified: 
tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/util/scan/StandardJarScanFilter.java 
Wed Mar 26 21:22:31 2014
@@ -103,8 +103,8 @@ public class StandardJarScanFilter imple
     public void setTldSkip(String tldSkip) {
         this.tldSkip = tldSkip;
         Lock writeLock = configurationLock.writeLock();
+        writeLock.lock();
         try {
-            writeLock.lock();
             populateSetFromAttribute(tldSkip, tldSkipSet);
         } finally {
             writeLock.unlock();
@@ -120,8 +120,8 @@ public class StandardJarScanFilter imple
     public void setTldScan(String tldScan) {
         this.tldScan = tldScan;
         Lock writeLock = configurationLock.writeLock();
+        writeLock.lock();
         try {
-            writeLock.lock();
             populateSetFromAttribute(tldScan, tldScanSet);
         } finally {
             writeLock.unlock();
@@ -147,8 +147,8 @@ public class StandardJarScanFilter imple
     public void setPluggabilitySkip(String pluggabilitySkip) {
         this.pluggabilitySkip = pluggabilitySkip;
         Lock writeLock = configurationLock.writeLock();
+        writeLock.lock();
         try {
-            writeLock.lock();
             populateSetFromAttribute(pluggabilitySkip, pluggabilitySkipSet);
         } finally {
             writeLock.unlock();
@@ -164,8 +164,8 @@ public class StandardJarScanFilter imple
     public void setPluggabilityScan(String pluggabilityScan) {
         this.pluggabilityScan = pluggabilityScan;
         Lock writeLock = configurationLock.writeLock();
+        writeLock.lock();
         try {
-            writeLock.lock();
             populateSetFromAttribute(pluggabilityScan, pluggabilityScanSet);
         } finally {
             writeLock.unlock();
@@ -190,8 +190,8 @@ public class StandardJarScanFilter imple
         Set<String[]> toScan = new HashSet<>();
 
         Lock readLock = configurationLock.readLock();
+        readLock.lock();
         try  {
-            readLock.lock();
             switch (jarScanType) {
                 case TLD: {
                     defaultScan = defaultTldScan;

Modified: tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java Wed Mar 26 
21:22:31 2014
@@ -652,10 +652,8 @@ public class TestRequest extends TomcatB
         conn.setRequestProperty("Content-Type",
                 "multipart/form-data; boundary=" + boundary);
 
-        PrintWriter writer = null;
-        try {
-            writer = new PrintWriter(new OutputStreamWriter(
-                    conn.getOutputStream(), "UTF-8"), true);
+        try (OutputStreamWriter osw = new 
OutputStreamWriter(conn.getOutputStream(), "UTF-8");
+                PrintWriter writer = new PrintWriter(osw, true)) {
             writer.append("--" + boundary).append("\r\n");
             writer.append("Content-Disposition: form-data; name=\"part\"\r\n");
             writer.append("Content-Type: text/plain; charset=UTF-8\r\n");
@@ -667,10 +665,6 @@ public class TestRequest extends TomcatB
             writer.flush();
 
             writer.append("--" + boundary + "--").append("\r\n");
-        } finally {
-            if (writer != null) {
-                writer.close();
-            }
         }
     }
 
@@ -679,19 +673,13 @@ public class TestRequest extends TomcatB
         List<String> response = new ArrayList<>();
         int status = conn.getResponseCode();
         if (status == HttpURLConnection.HTTP_OK) {
-            BufferedReader reader = null;
-            try {
-                reader = new BufferedReader(new InputStreamReader(
-                        conn.getInputStream(), "UTF-8"));
+            try (InputStreamReader isr = new 
InputStreamReader(conn.getInputStream(), "UTF-8");
+                    BufferedReader reader = new BufferedReader(isr)) {
                 String line = null;
                 while ((line = reader.readLine()) != null) {
                     response.add(line);
                 }
                 assertTrue(response.contains("Part ��"));
-            } finally {
-                if (reader != null) {
-                    reader.close();
-                }
             }
         } else {
             fail("OK status was expected: " + status);

Modified: 
tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java 
(original)
+++ 
tomcat/trunk/test/org/apache/catalina/core/TestStandardContextResources.java 
Wed Mar 26 21:22:31 2014
@@ -249,16 +249,12 @@ public class TestStandardContextResource
                 return;
             }
 
-            InputStream input = url.openStream();
-            OutputStream output = resp.getOutputStream();
-            try {
+            try (InputStream input = url.openStream();
+                    OutputStream output = resp.getOutputStream()) {
                 byte[] buffer = new byte[4000];
                 for (int len; (len = input.read(buffer)) > 0;) {
                     output.write(buffer, 0, len);
                 }
-            } finally {
-                input.close();
-                output.close();
             }
         }
     }

Modified: 
tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java 
(original)
+++ 
tomcat/trunk/test/org/apache/catalina/ha/session/TestSerializablePrincipal.java 
Wed Mar 26 21:22:31 2014
@@ -70,10 +70,8 @@ public class TestSerializablePrincipal  
         GenericPrincipal gpNew = null;
         try {
             // Do the serialization
-            FileOutputStream fos = null;
-            try {
-                fos = new FileOutputStream(file);
-                ObjectOutputStream oos = new ObjectOutputStream(fos);
+            try (FileOutputStream fos = new FileOutputStream(file);
+                    ObjectOutputStream oos = new ObjectOutputStream(fos)) {
                 SerializablePrincipal.writePrincipal(gpOriginal, oos);
                 oos.close();
             } catch (FileNotFoundException e) {
@@ -82,21 +80,11 @@ public class TestSerializablePrincipal  
             } catch (IOException e) {
                 e.printStackTrace();
                 fail("ioe serializing principal");
-            } finally {
-                if (fos != null) {
-                    try {
-                        fos.close();
-                    } catch (IOException ignored) {
-                        // NO OP
-                    }
-                }
             }
 
             // De-serialize the Principal
-            FileInputStream fis = null;
-            try {
-                fis = new FileInputStream(file);
-                ObjectInputStream ois = new ObjectInputStream(fis);
+            try (FileInputStream fis = new FileInputStream(file);
+                    ObjectInputStream ois = new ObjectInputStream(fis)) {
                 gpNew = SerializablePrincipal.readPrincipal(ois);
             } catch (FileNotFoundException e) {
                 e.printStackTrace();
@@ -107,14 +95,6 @@ public class TestSerializablePrincipal  
             } catch (ClassNotFoundException e) {
                 e.printStackTrace();
                 fail("cnfe de-serializing principal");
-            } finally {
-                if (fis != null) {
-                    try {
-                        fis.close();
-                    } catch (IOException ignored) {
-                        // NO OP
-                    }
-                }
             }
         } finally {
             if (!file.delete()) {

Modified: 
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
 (original)
+++ 
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
 Wed Mar 26 21:22:31 2014
@@ -16,7 +16,6 @@
  */
 package org.apache.catalina.loader;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.logging.Filter;
@@ -160,14 +159,12 @@ public class TestWebappClassLoaderThread
      * This method assumes that all classes are in the current package.
      */
     private void loadClass(String name, WebappClassLoader cl) throws Exception 
{
-
-        InputStream is = cl.getResourceAsStream(
-                "org/apache/tomcat/unittest/" + name + ".class");
-        // We know roughly how big the class will be (~ 1K) so allow 2k as a
-        // starting point
-        byte[] classBytes = new byte[2048];
-        int offset = 0;
-        try {
+        try (InputStream is = cl.getResourceAsStream(
+                "org/apache/tomcat/unittest/" + name + ".class")) {
+            // We know roughly how big the class will be (~ 1K) so allow 2k as 
a
+            // starting point
+            byte[] classBytes = new byte[2048];
+            int offset = 0;
             int read = is.read(classBytes, offset, classBytes.length-offset);
             while (read > -1) {
                 offset += read;
@@ -185,14 +182,6 @@ public class TestWebappClassLoaderThread
             // Make sure we can create an instance
             Object obj = lpClass.newInstance();
             obj.toString();
-        } finally {
-            if (is != null) {
-                try {
-                    is.close();
-                } catch (IOException ioe) {
-                    // Ignore
-                }
-            }
         }
     }
 

Modified: 
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- 
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java 
(original)
+++ 
tomcat/trunk/test/org/apache/catalina/loader/TestWebappClassLoaderWeaving.java 
Wed Mar 26 21:22:31 2014
@@ -285,23 +285,18 @@ public class TestWebappClassLoaderWeavin
     }
 
     private static void copyResource(String name, File file) throws Exception {
+        ClassLoader cl = TestWebappClassLoaderWeaving.class.getClassLoader();
+        try (InputStream is = cl.getResourceAsStream(name)) {
+            if (is == null) {
+                throw new IOException("Resource " + name + " not found on 
classpath.");
+            }
 
-        InputStream is = TestWebappClassLoaderWeaving.class.getClassLoader()
-                .getResourceAsStream(name);
-        if (is == null) {
-            throw new IOException("Resource " + name + " not found on 
classpath.");
-        }
-
-        FileOutputStream os = new FileOutputStream(file);
-        try {
-            for (int b = is.read(); b >= 0; b = is.read()) {
-                os.write(b);
+            try (FileOutputStream os = new FileOutputStream(file)) {
+                for (int b = is.read(); b >= 0; b = is.read()) {
+                    os.write(b);
+                }
             }
-        } finally {
-            is.close();
-            os.close();
         }
-
     }
 
     private static String invokeDoMethodOnClass(WebappClassLoader loader, 
String className)
@@ -393,14 +388,14 @@ public class TestWebappClassLoaderWeavin
      * and run this main method.
      */
     public static void main(String... arguments) throws Exception {
-        InputStream input = TestWebappClassLoaderWeaving.class.getClassLoader()
-                
.getResourceAsStream("org/apache/catalina/loader/TesterUnweavedClass.class");
+        ClassLoader cl = TestWebappClassLoaderWeaving.class.getClassLoader();
+        try (InputStream input = cl.getResourceAsStream(
+                "org/apache/catalina/loader/TesterUnweavedClass.class")) {
 
-        StringBuilder builder = new StringBuilder();
-        builder.append("            ");
+            StringBuilder builder = new StringBuilder();
+            builder.append("            ");
 
-        System.out.println("    private static final byte[] 
WEAVED_REPLACEMENT_1 = new byte[] {");
-        try {
+            System.out.println("    private static final byte[] 
WEAVED_REPLACEMENT_1 = new byte[] {");
             for (int i = 0, b = input.read(); b >= 0; i++, b = input.read()) {
                 String value = "" + ((byte)b);
                 if (builder.length() + value.length() > 97) {
@@ -416,8 +411,6 @@ public class TestWebappClassLoaderWeavin
                 }
             }
             System.out.println(builder.toString());
-        } finally {
-            input.close();
         }
         System.out.println("    }");
     }

Modified: 
tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java 
Wed Mar 26 21:22:31 2014
@@ -745,23 +745,12 @@ public class TestNonBlockingAPI extends 
         connection.connect();
 
         // Write the request body
-        OutputStream os = null;
-        try {
-            os = connection.getOutputStream();
+        try (OutputStream os = connection.getOutputStream()) {
             while (streamer != null && streamer.available() > 0) {
                 byte[] next = streamer.next();
                 os.write(next);
                 os.flush();
             }
-
-        } finally {
-            if (os != null) {
-                try {
-                    os.close();
-                } catch (IOException ioe) {
-                    // Ignore
-                }
-            }
         }
 
         int rc = connection.getResponseCode();
@@ -776,10 +765,6 @@ public class TestNonBlockingAPI extends 
         }
         if (rc == HttpServletResponse.SC_OK) {
             connection.getInputStream().close();
-            // Should never be null here but just to be safe
-            if (os != null) {
-                os.close();
-            }
             connection.disconnect();
         }
         return rc;

Modified: tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/servlets/TestDefaultServlet.java Wed 
Mar 26 21:22:31 2014
@@ -229,9 +229,10 @@ public class TestDefaultServlet extends 
         if (!webInf.mkdirs() && !webInf.isDirectory()) {
             fail("Unable to create directory [" + webInf + "]");
         }
-        Writer w = new OutputStreamWriter(new FileOutputStream(new File(appDir,
-                "WEB-INF/web.xml")), "UTF-8");
-        try {
+
+        File webxml = new File(appDir, "WEB-INF/web.xml");
+        try (FileOutputStream fos = new FileOutputStream(webxml);
+                Writer w = new OutputStreamWriter(fos, "UTF-8");) {
             w.write("<?xml version='1.0' encoding='UTF-8'?>\n"
                     + "<web-app xmlns='http://java.sun.com/xml/ns/j2ee' "
                     + " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
@@ -241,17 +242,12 @@ public class TestDefaultServlet extends 
                     + "<error-page>\n<error-code>404</error-code>\n"
                     + "<location>/404.html</location>\n</error-page>\n"
                     + "</web-app>\n");
-            w.flush();
-        } finally {
-            w.close();
-        }
-        w = new OutputStreamWriter(new FileOutputStream(new File(appDir,
-                "404.html")), "ISO-8859-1");
-        try {
+        }
+
+        File error404 = new File(appDir, "404.html");
+        try (FileOutputStream fos = new FileOutputStream(error404);
+                Writer w = new OutputStreamWriter(fos, "ISO-8859-1")) {
             w.write("It is 404.html");
-            w.flush();
-        } finally {
-            w.close();
         }
 
         Tomcat tomcat = getTomcatInstance();
@@ -315,9 +311,10 @@ public class TestDefaultServlet extends 
         if (!webInf.mkdirs() && !webInf.isDirectory()) {
             fail("Unable to create directory [" + webInf + "]");
         }
-        Writer w = new OutputStreamWriter(new FileOutputStream(new File(appDir,
-                "WEB-INF/web.xml")), "UTF-8");
-        try {
+
+        File webxml = new File(appDir, "WEB-INF/web.xml");
+        try (FileOutputStream fos = new FileOutputStream(webxml);
+                Writer w = new OutputStreamWriter(fos, "UTF-8");) {
             w.write("<?xml version='1.0' encoding='UTF-8'?>\n"
                     + "<web-app xmlns='http://java.sun.com/xml/ns/j2ee' "
                     + " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'"
@@ -327,9 +324,6 @@ public class TestDefaultServlet extends 
                     + "<error-page>\n<error-code>404</error-code>\n"
                     + "<location>/404-absent.html</location>\n</error-page>\n"
                     + "</web-app>\n");
-            w.flush();
-        } finally {
-            w.close();
         }
 
         Tomcat tomcat = getTomcatInstance();

Modified: tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java Wed Mar 26 
21:22:31 2014
@@ -129,31 +129,17 @@ public class TestTomcat extends TomcatBa
                 // Read some content from the resource
                 URLConnection conn = url.openConnection();
 
-                InputStream is = null;
-                Reader reader = null;
                 char cbuf[] = new char[20];
                 int read = 0;
-                try {
-                    is = conn.getInputStream();
-                    reader = new InputStreamReader(is);
+                try (InputStream is = conn.getInputStream();
+                        Reader reader = new InputStreamReader(is)) {
                     while (read < 20) {
                         int len = reader.read(cbuf, read, cbuf.length - read);
                         res.getWriter().write(cbuf, read, len);
                         read = read + len;
                     }
-                } finally {
-                    if (reader != null) {
-                        try { reader.close(); } catch(IOException ioe) 
{/*Ignore*/}
-                    }
-                    if (is != null) {
-                        try { is.close(); } catch(IOException ioe) {/*Ignore*/}
-                    }
                 }
-
-
             }
-
-
         }
     }
 

Modified: tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java Wed Mar 
26 21:22:31 2014
@@ -256,22 +256,12 @@ public abstract class TomcatBaseTest ext
             is = connection.getErrorStream();
         }
         if (is != null) {
-            BufferedInputStream bis = null;
-            try {
-                bis = new BufferedInputStream(is);
+            try (BufferedInputStream bis = new BufferedInputStream(is)) {
                 byte[] buf = new byte[2048];
                 int rd = 0;
                 while((rd = bis.read(buf)) > 0) {
                     out.append(buf, 0, rd);
                 }
-            } finally {
-                if (bis != null) {
-                    try {
-                        bis.close();
-                    } catch (IOException e) {
-                        // Ignore
-                    }
-                }
             }
         }
         return rc;
@@ -349,23 +339,12 @@ public abstract class TomcatBaseTest ext
         connection.connect();
 
         // Write the request body
-        OutputStream os = null;
-        try {
-            os = connection.getOutputStream();
-            while (streamer!=null && streamer.available()>0) {
+        try (OutputStream os = connection.getOutputStream()) {
+            while (streamer != null && streamer.available() > 0) {
                 byte[] next = streamer.next();
                 os.write(next);
                 os.flush();
             }
-
-        } finally {
-            if (os != null) {
-                try {
-                    os.close();
-                } catch (IOException ioe) {
-                    // Ignore
-                }
-            }
         }
 
         int rc = connection.getResponseCode();
@@ -380,22 +359,12 @@ public abstract class TomcatBaseTest ext
             is = connection.getErrorStream();
         }
 
-        BufferedInputStream bis = null;
-        try {
-            bis = new BufferedInputStream(is);
+        try (BufferedInputStream bis = new BufferedInputStream(is)) {
             byte[] buf = new byte[2048];
             int rd = 0;
             while((rd = bis.read(buf)) > 0) {
                 out.append(buf, 0, rd);
             }
-        } finally {
-            if (bis != null) {
-                try {
-                    bis.close();
-                } catch (IOException e) {
-                    // Ignore
-                }
-            }
         }
         return rc;
     }

Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java?rev=1582064&r1=1582063&r2=1582064&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Wed Mar 26 
21:22:31 2014
@@ -148,18 +148,8 @@ public final class TesterSupport {
     private static KeyStore getKeyStore(String keystore) throws Exception {
         File keystoreFile = new File(keystore);
         KeyStore ks = KeyStore.getInstance("JKS");
-        InputStream is = null;
-        try {
-            is = new FileInputStream(keystoreFile);
+        try (InputStream is = new FileInputStream(keystoreFile)) {
             ks.load(is, "changeit".toCharArray());
-        } finally {
-            if (is != null) {
-                try {
-                    is.close();
-                } catch (IOException ioe) {
-                    // Ignore
-                }
-            }
         }
         return ks;
     }



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

Reply via email to