You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gg...@apache.org on 2014/02/09 03:56:38 UTC

svn commit: r1566186 - in /logging/log4j/log4j2/trunk: log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java src/changes/changes.xml

Author: ggregory
Date: Sun Feb  9 02:56:37 2014
New Revision: 1566186

URL: http://svn.apache.org/r1566186
Log:
<action issue="LOG4J2-532" dev="ggregory" type="update">Resource leak in Flume appender when it cannot create a BerkeleyDB db.</action>

Modified:
    logging/log4j/log4j2/trunk/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java
    logging/log4j/log4j2/trunk/src/changes/changes.xml

Modified: logging/log4j/log4j2/trunk/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java?rev=1566186&r1=1566185&r2=1566186&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java (original)
+++ logging/log4j/log4j2/trunk/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumePersistentManager.java Sun Feb  9 02:56:37 2014
@@ -390,9 +390,8 @@ public class FlumePersistentManager exte
         @Override
         public FlumePersistentManager createManager(final String name, final FactoryData data) {
             SecretKey secretKey = null;
-
-            Database database;
-            Environment environment;
+            Database database = null;
+            Environment environment = null;
 
             final Map<String, String> properties = new HashMap<String, String>();
             if (data.properties != null) {
@@ -402,7 +401,6 @@ public class FlumePersistentManager exte
             }
 
             try {
-
                 final File dir = new File(data.dataDir);
                 FileUtils.mkdir(dir, true);
                 final EnvironmentConfig dbEnvConfig = new EnvironmentConfig();
@@ -416,6 +414,17 @@ public class FlumePersistentManager exte
                 database = environment.openDatabase(null, name, dbConfig);
             } catch (final Exception ex) {
                 LOGGER.error("Could not create FlumePersistentManager", ex);
+                // For consistency, close database as well as environment even though it should never happen since the
+                // database is that last thing in the block above, but this does guard against a future line being
+                // inserted at the end that would bomb (like some debug logging).
+                if (database != null) {
+                    database.close();
+                    database = null;
+                }
+                if (environment != null) {
+                    environment.close();
+                    environment = null;
+                }
                 return null;
             }
 

Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1566186&r1=1566185&r2=1566186&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
+++ logging/log4j/log4j2/trunk/src/changes/changes.xml Sun Feb  9 02:56:37 2014
@@ -240,6 +240,9 @@
       <action issue="LOG4J2-528" dev="ggregory" type="update">
         Rename package org.apache.logging.log4j.core.appender.rolling.helper to org.apache.logging.log4j.core.appender.rolling.action.
       </action>
+      <action issue="LOG4J2-532" dev="ggregory" type="update">
+        Resource leak in Flume appender when it cannot create a BerkeleyDB db.
+      </action>
     </release>
     <release version="2.0-beta9" date="2013-09-14" description="Bug fixes and enhancements">
       <action issue="LOG4J2-317" dev="ggregory" type="update">