Repository: logging-log4j2 Updated Branches: refs/heads/master 8d0b7bd06 -> 01cf5b000
[LOG4J2-1953] JndiManager is not released when the JmsAppender builder catches an exception trying to build itself. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/01cf5b00 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/01cf5b00 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/01cf5b00 Branch: refs/heads/master Commit: 01cf5b000fe83b5b29217589aa648b7d5ef00427 Parents: 8d0b7bd Author: Gary Gregory <[email protected]> Authored: Fri Jun 23 19:36:52 2017 -0700 Committer: Gary Gregory <[email protected]> Committed: Fri Jun 23 19:36:52 2017 -0700 ---------------------------------------------------------------------- .../logging/log4j/core/appender/mom/JmsAppender.java | 12 ++++++++---- src/changes/changes.xml | 3 +++ 2 files changed, 11 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/01cf5b00/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java index b91744e..e738b16 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/mom/JmsAppender.java @@ -217,16 +217,20 @@ public class JmsAppender extends AbstractAppender { @Override public JmsAppender build() { JmsManager actualJmsManager = jmsManager; + JndiManager jndiManager = null; if (actualJmsManager == null) { - final JndiManager jndiManager = JndiManager.getJndiManager(factoryName, providerUrl, urlPkgPrefixes, - securityPrincipalName, securityCredentials, null); - actualJmsManager = JmsManager.getJmsManager(name, jndiManager, factoryBindingName, - destinationBindingName, userName, password); + jndiManager = JndiManager.getJndiManager(factoryName, providerUrl, urlPkgPrefixes, + securityPrincipalName, securityCredentials, null); + actualJmsManager = JmsManager.getJmsManager(name, jndiManager, factoryBindingName, + destinationBindingName, userName, password); } try { return new JmsAppender(name, filter, layout, ignoreExceptions, actualJmsManager); } catch (final JMSException e) { LOGGER.error("Error creating JmsAppender [{}].", name, e); + if (jndiManager != null) { + jndiManager.stop(500, TimeUnit.MILLISECONDS); + } return null; } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/01cf5b00/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 2f072c1..15e469d 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -43,6 +43,9 @@ <action issue="LOG4J2-1943" dev="rgoers" type="fix"> The eventPrefix attribute was being ignored in the RFC5424Layout. </action> + <action issue="LOG4J2-1953" dev="ggregory" type="fix"> + JndiManager is not released when the JmsAppender builder catches an exception trying to build itself. + </action> <action issue="LOG4J2-1911" dev="rgoers" type="fix"> Improve the documentation of the DynamicThresholdFilter. </action>
