What about renaming the class SilentCloser and the methods close() if they are all "silent"?
Gary <div>-------- Original message --------</div><div>From: [email protected] </div><div>Date:05/23/2014 18:02 (GMT-05:00) </div><div>To: [email protected] </div><div>Subject: svn commit: r1597200 - /logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java </div><div> </div>Author: mattsicker Date: Fri May 23 22:02:39 2014 New Revision: 1597200 URL: http://svn.apache.org/r1597200 Log: Safely close JNDI Context. Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java?rev=1597200&r1=1597199&r2=1597200&view=diff ============================================================================== --- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java (original) +++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/JndiContextSelector.java Fri May 23 22:02:39 2014 @@ -23,7 +23,6 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; - import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NameNotFoundException; @@ -31,6 +30,7 @@ import javax.naming.NamingException; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.impl.ContextAnchor; +import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.status.StatusLogger; @@ -111,11 +111,14 @@ public class JndiContextSelector impleme String loggingContextName = null; + Context ctx = null; try { - final Context ctx = new InitialContext(); + ctx = new InitialContext(); loggingContextName = (String) lookup(ctx, Constants.JNDI_CONTEXT_NAME); } catch (final NamingException ne) { LOGGER.error("Unable to lookup " + Constants.JNDI_CONTEXT_NAME, ne); + } finally { + Closer.closeSilent(ctx); } return loggingContextName == null ? CONTEXT : locateContext(loggingContextName, null, configLocation);
