From 248fa27fa45dab6e958a0aeb990fa51f3d1f12ed Mon Sep 17 00:00:00 2001 From: Keith Wall Date: Sat, 26 May 2012 11:23:41 +0000 Subject: QPID-3997: AuthenticationManagers not cleaned up on error path We have been seeing ApplicationRegistryShutdownTest fail regularly on JDK1.7 on Jenkins CI for the last week. This is caused by the ApplicationRegistry failing to clean up on the error path where many AuthenticationManagers are configured but one is not designated as default. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1342886 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/server/registry/ApplicationRegistry.java | 15 ++++----------- .../auth/manager/KerberosAuthenticationManager.java | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) (limited to 'java') diff --git a/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java b/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java index 61bbfce4a3..4aa1ba47cd 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java +++ b/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java @@ -115,21 +115,11 @@ public abstract class ApplicationRegistry implements IApplicationRegistry private BundleContext _bundleContext; - protected static Logger get_logger() - { - return _logger; - } - protected Map getAcceptors() { return _acceptors; } - private QpidAcceptor getAcceptor(SocketAddress address) - { - return _acceptors.get(address); - } - protected void setManagedObjectRegistry(ManagedObjectRegistry managedObjectRegistry) { _managedObjectRegistry = managedObjectRegistry; @@ -409,12 +399,15 @@ public abstract class ApplicationRegistry implements IApplicationRegistry } else { + for (AuthenticationManager authenticationManger : authManagersByClass.values()) + { + authenticationManger.close(); + } throw new ConfigurationException("If more than one authentication manager is configured a default MUST be specified."); } Map authManagers = new HashMap(); authManagers .put(null, defaultAuthMgr); - String host = _configuration.getBind(); for(Map.Entry portMapping : _configuration.getPortAuthenticationMappings().entrySet()) { diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java b/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java index dd2a82e9e1..21c9a85bf7 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java +++ b/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java @@ -89,7 +89,7 @@ public class KerberosAuthenticationManager implements AuthenticationManager // If there is no configuration for this plugin then don't load it. if (configuration == null) { - _logger.info("No authentication-manager configuration found for AnonymousAuthenticationManager"); + _logger.info("No authentication-manager configuration found for KerberosAuthenticationManager"); return null; } KerberosAuthenticationManager kerberosAuthenticationManager = new KerberosAuthenticationManager(); -- cgit v1.2.1