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