[ 
https://issues.apache.org/jira/browse/AMQ-9627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Nikita Shupletsov updated AMQ-9627:
-----------------------------------
    Description: 
When cachedLDAPAuthorizationMap is used and LDAP is down, the broker will not 
start and fail with the following exception:

 

{{org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class 
path resource [org/apache/activemq/security/activemq-ldap-cached-map.xml]: 
Cannot create inner bean 'authorizationPlugin#674658f7' of type 
[org.apache.activemq.security.AuthorizationPlugin] while setting bean property 
'plugins' with key [1]}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:421)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.lambda$resolveValueIfNecessary$0(BeanDefinitionValueResolver.java:149)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:262)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:148)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:460)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:191)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1705)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1454)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
{{    at 
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)}}
{{    at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)}}
{{    at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)}}
{{    at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)}}
{{    at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)}}
{{    at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971)}}
{{    at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625)}}
{{    at 
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)}}
{{    at 
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)}}
{{    at 
org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:104)}}
{{    at 
org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:104)}}
{{    at 
org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:67)}}
{{    at 
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)}}
{{    at 
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)}}
{{    at 
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:85)}}
{{    at 
org.apache.activemq.security.LdapCachedLDAPAuthorizationMapTest.testStartBrokerWhenLdapServerIsUnreachable(LdapCachedLDAPAuthorizationMapTest.java:21)}}
{{    at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)}}
{{    at java.base/java.lang.reflect.Method.invoke(Method.java:580)}}
{{    at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)}}
{{    at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)}}
{{    at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)}}
{{    at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)}}
{{    at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)}}
{{    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)}}
{{    at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)}}
{{    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)}}
{{    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)}}
{{    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)}}
{{    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)}}
{{    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)}}
{{    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)}}
{{    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)}}
{{    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)}}
{{    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)}}
{{    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)}}
{{Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'authorizationPlugin#674658f7' defined in class path 
resource [org/apache/activemq/security/activemq-ldap-cached-map.xml]: Cannot 
create inner bean '(inner bean)#68ace111' of type 
[org.apache.activemq.security.CachedLDAPAuthorizationMap] while setting 
constructor argument}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:421)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.lambda$resolveValueIfNecessary$1(BeanDefinitionValueResolver.java:153)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:262)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:152)}}
{{    at 
org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:682)}}
{{    at 
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:203)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1375)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1212)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:407)}}
{{    ... 52 more}}
{{Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name '(inner bean)#68ace111' defined in class path resource 
[org/apache/activemq/security/activemq-ldap-cached-map.xml]: localhost:1024}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:407)}}
{{    ... 62 more}}
{{Caused by: javax.naming.CommunicationException: localhost:1024 [Root 
exception is java.net.ConnectException: Connection refused]}}
{{    at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:253)}}
{{    at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:141)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1620)}}
{{    at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2848)}}
{{    at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:349)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:229)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:247)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)}}
{{    at 
java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:520)}}
{{    at 
java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)}}
{{    at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)}}
{{    at 
java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)}}
{{    at 
java.naming/javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:130)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.createContext(SimpleCachedLDAPAuthorizationMap.java:142)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.open(SimpleCachedLDAPAuthorizationMap.java:172)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.query(SimpleCachedLDAPAuthorizationMap.java:227)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.afterPropertiesSet(SimpleCachedLDAPAuthorizationMap.java:939)}}
{{    at 
org.apache.activemq.security.CachedLDAPAuthorizationMap.afterPropertiesSet(CachedLDAPAuthorizationMap.java:34)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802)}}
{{    ... 65 more}}
{{Caused by: java.net.ConnectException: Connection refused}}
{{    at java.base/sun.nio.ch.Net.connect0(Native Method)}}
{{    at java.base/sun.nio.ch.Net.connect(Net.java:589)}}
{{    at java.base/sun.nio.ch.Net.connect(Net.java:578)}}
{{    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583)}}
{{    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)}}
{{    at java.base/java.net.Socket.connect(Socket.java:751)}}
{{    at java.base/java.net.Socket.connect(Socket.java:686)}}
{{    at java.base/java.net.Socket.<init>(Socket.java:555)}}
{{    at java.base/java.net.Socket.<init>(Socket.java:324)}}
{{    at 
java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:267)}}
{{    at 
java.naming/com.sun.jndi.ldap.Connection.createConnectionSocket(Connection.java:341)}}
{{    at 
java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:285)}}
{{    at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:232)}}
{{    ... 86 more}}

 
it's rather inconvenient, as cachedLDAPAuthorizationMap is usually used to 
avoid issues with the LDAP server being not always available
 

  was:
When cachedLDAPAuthorizationMap is used and LDAP is down, the broker will not 
start and fail with the following exception:

 

{{org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class 
path resource [org/apache/activemq/security/activemq-ldap-cached-map.xml]: 
Cannot create inner bean 'authorizationPlugin#674658f7' of type 
[org.apache.activemq.security.AuthorizationPlugin] while setting bean property 
'plugins' with key [1]}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:421)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.lambda$resolveValueIfNecessary$0(BeanDefinitionValueResolver.java:149)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:262)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:148)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:460)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:191)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1705)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1454)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
{{    at 
org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)}}
{{    at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)}}
{{    at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)}}
{{    at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)}}
{{    at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)}}
{{    at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971)}}
{{    at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625)}}
{{    at 
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)}}
{{    at 
org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)}}
{{    at 
org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:104)}}
{{    at 
org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:104)}}
{{    at 
org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:67)}}
{{    at 
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)}}
{{    at 
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)}}
{{    at 
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:85)}}
{{    at 
org.apache.activemq.security.LdapCachedLDAPAuthorizationMapTest.testStartBrokerWhenLdapServerIsUnreachable(LdapCachedLDAPAuthorizationMapTest.java:21)}}
{{    at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)}}
{{    at java.base/java.lang.reflect.Method.invoke(Method.java:580)}}
{{    at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)}}
{{    at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)}}
{{    at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)}}
{{    at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)}}
{{    at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)}}
{{    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)}}
{{    at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)}}
{{    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)}}
{{    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)}}
{{    at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)}}
{{    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)}}
{{    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)}}
{{    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)}}
{{    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)}}
{{    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)}}
{{    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)}}
{{    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)}}
{{    at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)}}
{{    at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)}}
{{Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'authorizationPlugin#674658f7' defined in class path 
resource [org/apache/activemq/security/activemq-ldap-cached-map.xml]: Cannot 
create inner bean '(inner bean)#68ace111' of type 
[org.apache.activemq.security.CachedLDAPAuthorizationMap] while setting 
constructor argument}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:421)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.lambda$resolveValueIfNecessary$1(BeanDefinitionValueResolver.java:153)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:262)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:152)}}
{{    at 
org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:682)}}
{{    at 
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:203)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1375)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1212)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:407)}}
{{    ... 52 more}}
{{Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name '(inner bean)#68ace111' defined in class path resource 
[org/apache/activemq/security/activemq-ldap-cached-map.xml]: localhost:1024}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
{{    at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:407)}}
{{    ... 62 more}}
{{Caused by: javax.naming.CommunicationException: localhost:1024 [Root 
exception is java.net.ConnectException: Connection refused]}}
{{    at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:253)}}
{{    at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:141)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1620)}}
{{    at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2848)}}
{{    at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:349)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:229)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:247)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)}}
{{    at 
java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)}}
{{    at 
java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:520)}}
{{    at 
java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)}}
{{    at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)}}
{{    at 
java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)}}
{{    at 
java.naming/javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:130)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.createContext(SimpleCachedLDAPAuthorizationMap.java:142)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.open(SimpleCachedLDAPAuthorizationMap.java:172)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.query(SimpleCachedLDAPAuthorizationMap.java:227)}}
{{    at 
org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.afterPropertiesSet(SimpleCachedLDAPAuthorizationMap.java:939)}}
{{    at 
org.apache.activemq.security.CachedLDAPAuthorizationMap.afterPropertiesSet(CachedLDAPAuthorizationMap.java:34)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853)}}
{{    at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802)}}
{{    ... 65 more}}
{{Caused by: java.net.ConnectException: Connection refused}}
{{    at java.base/sun.nio.ch.Net.connect0(Native Method)}}
{{    at java.base/sun.nio.ch.Net.connect(Net.java:589)}}
{{    at java.base/sun.nio.ch.Net.connect(Net.java:578)}}
{{    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583)}}
{{    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)}}
{{    at java.base/java.net.Socket.connect(Socket.java:751)}}
{{    at java.base/java.net.Socket.connect(Socket.java:686)}}
{{    at java.base/java.net.Socket.<init>(Socket.java:555)}}
{{    at java.base/java.net.Socket.<init>(Socket.java:324)}}
{{    at 
java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:267)}}
{{    at 
java.naming/com.sun.jndi.ldap.Connection.createConnectionSocket(Connection.java:341)}}
{{    at 
java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:285)}}
{{    at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:232)}}
{{    ... 86 more}}


> Broker will not start if cachedLDAPAuthorizationMap is used and LDAP server 
> is unavailable 
> -------------------------------------------------------------------------------------------
>
>                 Key: AMQ-9627
>                 URL: https://issues.apache.org/jira/browse/AMQ-9627
>             Project: ActiveMQ Classic
>          Issue Type: Bug
>            Reporter: Nikita Shupletsov
>            Priority: Minor
>
> When cachedLDAPAuthorizationMap is used and LDAP is down, the broker will not 
> start and fail with the following exception:
>  
> {{org.springframework.beans.factory.BeanCreationException: Error creating 
> bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in 
> class path resource 
> [org/apache/activemq/security/activemq-ldap-cached-map.xml]: Cannot create 
> inner bean 'authorizationPlugin#674658f7' of type 
> [org.apache.activemq.security.AuthorizationPlugin] while setting bean 
> property 'plugins' with key [1]}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:421)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.lambda$resolveValueIfNecessary$0(BeanDefinitionValueResolver.java:149)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:262)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:148)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:460)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:191)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1705)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1454)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337)}}
> {{    at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)}}
> {{    at 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975)}}
> {{    at 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:971)}}
> {{    at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625)}}
> {{    at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:64)}}
> {{    at 
> org.apache.xbean.spring.context.ResourceXmlApplicationContext.<init>(ResourceXmlApplicationContext.java:52)}}
> {{    at 
> org.apache.activemq.xbean.XBeanBrokerFactory$1.<init>(XBeanBrokerFactory.java:104)}}
> {{    at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:104)}}
> {{    at 
> org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:67)}}
> {{    at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)}}
> {{    at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)}}
> {{    at 
> org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:85)}}
> {{    at 
> org.apache.activemq.security.LdapCachedLDAPAuthorizationMapTest.testStartBrokerWhenLdapServerIsUnreachable(LdapCachedLDAPAuthorizationMapTest.java:21)}}
> {{    at 
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)}}
> {{    at java.base/java.lang.reflect.Method.invoke(Method.java:580)}}
> {{    at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)}}
> {{    at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)}}
> {{    at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)}}
> {{    at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)}}
> {{    at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)}}
> {{    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)}}
> {{    at 
> org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)}}
> {{    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)}}
> {{    at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)}}
> {{    at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)}}
> {{    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)}}
> {{    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)}}
> {{    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)}}
> {{    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)}}
> {{    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)}}
> {{    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)}}
> {{    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)}}
> {{    at 
> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)}}
> {{    at 
> org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)}}
> {{    at 
> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)}}
> {{    at 
> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)}}
> {{    at 
> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)}}
> {{    at 
> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)}}
> {{    at 
> org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)}}
> {{    at 
> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)}}
> {{Caused by: org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'authorizationPlugin#674658f7' defined in class path 
> resource [org/apache/activemq/security/activemq-ldap-cached-map.xml]: Cannot 
> create inner bean '(inner bean)#68ace111' of type 
> [org.apache.activemq.security.CachedLDAPAuthorizationMap] while setting 
> constructor argument}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:421)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.lambda$resolveValueIfNecessary$1(BeanDefinitionValueResolver.java:153)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:262)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:152)}}
> {{    at 
> org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:682)}}
> {{    at 
> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:203)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1375)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1212)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:407)}}
> {{    ... 52 more}}
> {{Caused by: org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name '(inner bean)#68ace111' defined in class path 
> resource [org/apache/activemq/security/activemq-ldap-cached-map.xml]: 
> localhost:1024}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1806)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522)}}
> {{    at 
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBeanValue(BeanDefinitionValueResolver.java:407)}}
> {{    ... 62 more}}
> {{Caused by: javax.naming.CommunicationException: localhost:1024 [Root 
> exception is java.net.ConnectException: Connection refused]}}
> {{    at 
> java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:253)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:141)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1620)}}
> {{    at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2848)}}
> {{    at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:349)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:229)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:247)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)}}
> {{    at 
> java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:520)}}
> {{    at 
> java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)}}
> {{    at 
> java.naming/javax.naming.InitialContext.init(InitialContext.java:236)}}
> {{    at 
> java.naming/javax.naming.InitialContext.<init>(InitialContext.java:208)}}
> {{    at 
> java.naming/javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:130)}}
> {{    at 
> org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.createContext(SimpleCachedLDAPAuthorizationMap.java:142)}}
> {{    at 
> org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.open(SimpleCachedLDAPAuthorizationMap.java:172)}}
> {{    at 
> org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.query(SimpleCachedLDAPAuthorizationMap.java:227)}}
> {{    at 
> org.apache.activemq.security.SimpleCachedLDAPAuthorizationMap.afterPropertiesSet(SimpleCachedLDAPAuthorizationMap.java:939)}}
> {{    at 
> org.apache.activemq.security.CachedLDAPAuthorizationMap.afterPropertiesSet(CachedLDAPAuthorizationMap.java:34)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853)}}
> {{    at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1802)}}
> {{    ... 65 more}}
> {{Caused by: java.net.ConnectException: Connection refused}}
> {{    at java.base/sun.nio.ch.Net.connect0(Native Method)}}
> {{    at java.base/sun.nio.ch.Net.connect(Net.java:589)}}
> {{    at java.base/sun.nio.ch.Net.connect(Net.java:578)}}
> {{    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:583)}}
> {{    at 
> java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)}}
> {{    at java.base/java.net.Socket.connect(Socket.java:751)}}
> {{    at java.base/java.net.Socket.connect(Socket.java:686)}}
> {{    at java.base/java.net.Socket.<init>(Socket.java:555)}}
> {{    at java.base/java.net.Socket.<init>(Socket.java:324)}}
> {{    at 
> java.base/javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:267)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.Connection.createConnectionSocket(Connection.java:341)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:285)}}
> {{    at 
> java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:232)}}
> {{    ... 86 more}}
>  
> it's rather inconvenient, as cachedLDAPAuthorizationMap is usually used to 
> avoid issues with the LDAP server being not always available
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact



Reply via email to