From c0b4b5787fc7a685c82d237f09533c89eb6b1ab1 Mon Sep 17 00:00:00 2001 From: igor-suhorukov Date: Fri, 9 Feb 2018 01:00:24 +0300 Subject: [PATCH] Change this "try" to a try-with-resources Closes gh-1671 --- .../PropertiesBeanDefinitionReader.java | 6 +----- ...ReloadableResourceBundleMessageSource.java | 6 +----- .../support/ResourceBundleMessageSource.java | 8 ++------ .../http/MediaTypeFactory.java | 13 +------------ .../remoting/caucho/HessianExporter.java | 19 ++++++++++--------- 5 files changed, 15 insertions(+), 37 deletions(-) diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java index 4c2e39757e8..7105453f58f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/PropertiesBeanDefinitionReader.java @@ -249,8 +249,7 @@ public class PropertiesBeanDefinitionReader extends AbstractBeanDefinitionReader Properties props = new Properties(); try { - InputStream is = encodedResource.getResource().getInputStream(); - try { + try (InputStream is = encodedResource.getResource().getInputStream()) { if (encodedResource.getEncoding() != null) { getPropertiesPersister().load(props, new InputStreamReader(is, encodedResource.getEncoding())); } @@ -258,9 +257,6 @@ public class PropertiesBeanDefinitionReader extends AbstractBeanDefinitionReader getPropertiesPersister().load(props, is); } } - finally { - is.close(); - } return registerBeanDefinitions(props, prefix, encodedResource.getResource().getDescription()); } catch (IOException ex) { diff --git a/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java b/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java index d8c0da849b4..1fdb0ddacc0 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/ReloadableResourceBundleMessageSource.java @@ -461,9 +461,8 @@ public class ReloadableResourceBundleMessageSource extends AbstractResourceBased * @throws IOException if properties loading failed */ protected Properties loadProperties(Resource resource, String filename) throws IOException { - InputStream is = resource.getInputStream(); Properties props = newProperties(); - try { + try (InputStream is = resource.getInputStream()) { String resourceFilename = resource.getFilename(); if (resourceFilename != null && resourceFilename.endsWith(XML_SUFFIX)) { if (logger.isDebugEnabled()) { @@ -494,9 +493,6 @@ public class ReloadableResourceBundleMessageSource extends AbstractResourceBased } return props; } - finally { - is.close(); - } } /** diff --git a/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java b/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java index 6fab967f4d4..336c9d3ca03 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java @@ -26,7 +26,6 @@ import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.text.MessageFormat; -import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.MissingResourceException; @@ -370,11 +369,8 @@ public class ResourceBundleMessageSource extends AbstractResourceBasedMessageSou if (encoding == null) { encoding = "ISO-8859-1"; } - try { - return loadBundle(new InputStreamReader(stream, encoding)); - } - finally { - stream.close(); + try (InputStreamReader bundleReader = new InputStreamReader(stream, encoding)) { + return loadBundle(bundleReader); } } else { diff --git a/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java b/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java index 8cfb899a417..09e200a5bfe 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java +++ b/spring-web/src/main/java/org/springframework/http/MediaTypeFactory.java @@ -60,9 +60,7 @@ public class MediaTypeFactory { * @return a multi-value map, mapping media types to file extensions. */ private static MultiValueMap parseMimeTypes() { - InputStream is = null; - try { - is = MediaTypeFactory.class.getResourceAsStream(MIME_TYPES_FILE_NAME); + try (InputStream is = MediaTypeFactory.class.getResourceAsStream(MIME_TYPES_FILE_NAME)) { BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.US_ASCII)); MultiValueMap result = new LinkedMultiValueMap<>(); String line; @@ -82,15 +80,6 @@ public class MediaTypeFactory { catch (IOException ex) { throw new IllegalStateException("Could not load '" + MIME_TYPES_FILE_NAME + "'", ex); } - finally { - if (is != null) { - try { - is.close(); - } - catch (IOException ignore) { - } - } - } } /** diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java index 6e3c527e265..e228360dac1 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java @@ -158,15 +158,16 @@ public class HessianExporter extends RemoteExporter implements InitializingBean OutputStream osToUse = outputStream; if (this.debugLogger != null && this.debugLogger.isDebugEnabled()) { - PrintWriter debugWriter = new PrintWriter(new CommonsLogWriter(this.debugLogger)); - @SuppressWarnings("resource") - HessianDebugInputStream dis = new HessianDebugInputStream(inputStream, debugWriter); - @SuppressWarnings("resource") - HessianDebugOutputStream dos = new HessianDebugOutputStream(outputStream, debugWriter); - dis.startTop2(); - dos.startTop2(); - isToUse = dis; - osToUse = dos; + try (PrintWriter debugWriter = new PrintWriter(new CommonsLogWriter(this.debugLogger))){ + @SuppressWarnings("resource") + HessianDebugInputStream dis = new HessianDebugInputStream(inputStream, debugWriter); + @SuppressWarnings("resource") + HessianDebugOutputStream dos = new HessianDebugOutputStream(outputStream, debugWriter); + dis.startTop2(); + dos.startTop2(); + isToUse = dis; + osToUse = dos; + } } if (!isToUse.markSupported()) {