-
Bug
-
Resolution: Unresolved
-
Low (View bug fix roadmap)
-
None
-
4.4.3, 5.2.5, 6.0.1/OD-15, 6.0.3, 6.1.7, 7.0.10, 9.12.5
-
4.04
-
28
-
Severity 3 - Minor
-
1
-
In a case where db connection details need to be retrieved from LDAP:
Database URL : jdbc:oracle:thin:@ldap://mycompany.com:4042/cn=OracleContext,dc=mycompany,dc=com/OUR_JIRA
JIRA will crash with ClassNotFoundException: com.sun.jndi.ldap.LdapCtxFactory when loading plugins:
2011-11-16 21:09:32,967 Spring executor 4 ERROR [plugin.osgi.factory.OsgiPlugin] Unable to start the Spring context for plugin com.atlassian.jira.plugin.ext.bamboo org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bambooServerManager' defined in URL [bundle://31.0:0/META-INF/spring/atlassian-plugins-components.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.atlassian.jira.plugin.ext.bamboo.BambooServerManagerImpl]: Constructor threw exception; nested exception is com.opensymphony.module.propertyset.PropertyImplementationException: Unable to esablish a connection with the database. (JNDI Package failure javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.ldap.LdapCtxFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.ldap.LdapCtxFactory not found from bundle [com.atlassian.jira.plugin.ext.bamboo]]) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:254) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:925) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:835) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355) at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320) at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.atlassian.jira.plugin.ext.bamboo.BambooServerManagerImpl]: Constructor threw exception; nested exception is com.opensymphony.module.propertyset.PropertyImplementationException: Unable to esablish a connection with the database. (JNDI Package failure javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.ldap.LdapCtxFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.ldap.LdapCtxFactory not found from bundle [com.atlassian.jira.plugin.ext.bamboo]]) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:248) ... 21 more Caused by: com.opensymphony.module.propertyset.PropertyImplementationException: Unable to esablish a connection with the database. (JNDI Package failure javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.ldap.LdapCtxFactory [Root exception is java.lang.ClassNotFoundException: com.sun.jndi.ldap.LdapCtxFactory not found from bundle [com.atlassian.jira.plugin.ext.bamboo]]) at com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.findPropertyEntry(OFBizPropertySet.java:231) at com.opensymphony.module.propertyset.ofbiz.OFBizPropertySet.exists(OFBizPropertySet.java:118) at com.atlassian.jira.plugin.ext.bamboo.BambooServerManagerImpl.getConfigVersionNumber(BambooServerManagerImpl.java:606) at com.atlassian.jira.plugin.ext.bamboo.BambooServerManagerImpl.checkUpgradeConfig(BambooServerManagerImpl.java:588) at com.atlassian.jira.plugin.ext.bamboo.BambooServerManagerImpl.<init>(BambooServerManagerImpl.java:100) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100) ... 23 more
Workaround
- Modify $JIRA_HOME/dbconfig.xml file to not use LDAP, but directly connect to the database server using the dedicated user.
- Restart JIRA to pick up the changes
- is related to
-
BAM-11415 Plugins 2 can't access JNDI classes
-
- Closed
-
-
JRASERVER-41631 Support database connection using LDAP string
- Closed
- relates to
-
CRUC-6533 Plugin 2 can't access JNDI classes
-
- Closed
-
- is resolved by
-
WILDT-141 You do not have permission to view this issue
- links to
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
- was cloned as
-
PLUG-1079 Loading...
Error still exists in Jira 8.17.0
That's very sad. I cannot see why accessing a professional database via ldap is so exotic it cannot be supported properly
