From 47ae3e15c373b94e35e0700bfcc1ab0f54c87d0f Mon Sep 17 00:00:00 2001 From: "Gary D. Gregory" Date: Mon, 17 Oct 2016 16:56:41 +0000 Subject: [PATCH] [LOGGING-163] BufferedReader is not closed properly. git-svn-id: https://svn.apache.org/repos/asf/commons/proper/logging/trunk@1765341 13f79535-47bb-0310-9956-ffa450edef68 --- src/changes/changes.xml | 3 +++ .../java/org/apache/commons/logging/LogFactory.java | 8 ++++++-- .../org/apache/commons/logging/impl/SimpleLog.java | 12 +++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index f542a0b..5de1296 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -44,6 +44,9 @@ The type attribute can be add,update,fix,remove. + + BufferedReader is not closed properly. + diff --git a/src/main/java/org/apache/commons/logging/LogFactory.java b/src/main/java/org/apache/commons/logging/LogFactory.java index 735164c..e172820 100644 --- a/src/main/java/org/apache/commons/logging/LogFactory.java +++ b/src/main/java/org/apache/commons/logging/LogFactory.java @@ -539,8 +539,12 @@ public abstract class LogFactory { rd = new BufferedReader(new InputStreamReader(is)); } - String factoryClassName = rd.readLine(); - rd.close(); + String factoryClassName; + try { + factoryClassName = rd.readLine(); + } finally { + rd.close(); + } if (factoryClassName != null && ! "".equals(factoryClassName)) { if (isDiagnosticsEnabled()) { diff --git a/src/main/java/org/apache/commons/logging/impl/SimpleLog.java b/src/main/java/org/apache/commons/logging/impl/SimpleLog.java index 8405cbd..e6f99ef 100644 --- a/src/main/java/org/apache/commons/logging/impl/SimpleLog.java +++ b/src/main/java/org/apache/commons/logging/impl/SimpleLog.java @@ -17,6 +17,7 @@ package org.apache.commons.logging.impl; +import java.io.IOException; import java.io.InputStream; import java.io.Serializable; import java.lang.reflect.InvocationTargetException; @@ -158,12 +159,17 @@ public class SimpleLog implements Log, Serializable { static { // Add props from the resource simplelog.properties InputStream in = getResourceAsStream("simplelog.properties"); - if(null != in) { + if (null != in) { try { simpleLogProps.load(in); - in.close(); - } catch(java.io.IOException e) { + } catch (java.io.IOException e) { // ignored + } finally { + try { + in.close(); + } catch (IOException e) { + // ignored + } } }