NoClassDefFoundError: javax/security/auth/login/LoginException from Subversion plugin
Symptoms
After installing JIRA, the Subversion plugin, and configuring LDAP authentication, JIRA either won't start or will fail to render the SVN configuration panel.
The following appears in the atlassian-jira.log
:
2014-01-03 15:40:09,123 ThreadPoolAsyncTaskExecutor::Thread 19 ERROR <user> 939x143x4 1f9yztp <ip_address> /rest/plugins/1.0/available/featured [extender.internal.activator.ContextLoaderListener] Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.atlassian.jira.plugin.ext.subversion.atlassian-jira-subversion-plugin, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subversionManager' defined in URL [bundle://136.0:0/META-INF/spring/subversion-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/security/auth/login/LoginException
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.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: javax/security/auth/login/LoginException
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: java.lang.NoClassDefFoundError: javax/security/auth/login/LoginException
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:519)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:286)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:274)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:696)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99)
at com.atlassian.jira.plugin.ext.subversion.SubversionManagerImpl.activate(SubversionManagerImpl.java:252)
at com.atlassian.jira.plugin.ext.subversion.SubversionManagerImpl.setup(SubversionManagerImpl.java:85)
at com.atlassian.jira.plugin.ext.subversion.SubversionManagerImpl.<init>(SubversionManagerImpl.java:56)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.createManagerFromPropertySet(MultipleSubversionRepositoryManagerImpl.java:123)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.loadManagersFromJiraProperties(MultipleSubversionRepositoryManagerImpl.java:109)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.loadSvnManagers(MultipleSubversionRepositoryManagerImpl.java:81)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.<init>(MultipleSubversionRepositoryManagerImpl.java:66) <+3> (NativeConstructorAccessorImpl.java:57) (DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
... 23 more
Caused by: java.lang.ClassNotFoundException: javax.security.auth.login.LoginException
at org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:772)
at org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73)
at org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1690)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 44 more
2016-01-29 15:40:40,191 ThreadPoolAsyncTaskExecutor::Thread 28 ERROR badmin 905x137x1 1l340a9 192.168.5.3 /rest/plugins/1.0/installed-marketplace [c.a.p.osgi.factory.OsgiPlugin] Unable to start the plugin container for plugin 'com.atlassian.jira.plugin.ext.subversion'
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subversionManager' defined in URL [bundle://187.0:0/META-INF/spring/subversion-context.xml]: Invocation of init method failed; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
...
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
...
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
... 16 more
Caused by: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPAuthentication.parseAuthParameters(HTTPAuthentication.java:229)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:653)
...
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
... 29 more
Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSException not found by com.atlassian.jira.plugin.ext.subversion.atlassian-jira-subversion-plugin [187]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 52 more
2016-01-29 15:40:40,191 ThreadPoolAsyncTaskExecutor::Thread 28 ERROR badmin 905x137x1 1l340a9 192.168.5.3 /rest/plugins/1.0/installed-marketplace [c.a.p.osgi.factory.OsgiPlugin] Unable to start the plugin container for plugin 'com.atlassian.jira.plugin.ext.subversion'
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subversionManager' defined in URL [bundle://187.0:0/META-INF/spring/subversion-context.xml]: Invocation of init method failed; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
...
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
...
... 16 more
Caused by: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPAuthentication.parseAuthParameters(HTTPAuthentication.java:229)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:653)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:398)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:386)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:863)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:118)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1049)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:100)
at com.atlassian.jira.plugin.ext.subversion.SubversionManagerImpl.activate(SubversionManagerImpl.java:243)
at com.atlassian.jira.plugin.ext.subversion.SubversionManagerImpl.setup(SubversionManagerImpl.java:81)
at com.atlassian.jira.plugin.ext.subversion.SubversionManagerImpl.<init>(SubversionManagerImpl.java:52)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.createManagerFromPropertySet(MultipleSubversionRepositoryManagerImpl.java:177)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.loadManagersFromJiraProperties(MultipleSubversionRepositoryManagerImpl.java:164)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.access$100(MultipleSubversionRepositoryManagerImpl.java:44)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl$SvnManagerCacheSupplier.get(MultipleSubversionRepositoryManagerImpl.java:139)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl$SvnManagerCacheSupplier.get(MultipleSubversionRepositoryManagerImpl.java:136)
at com.atlassian.cache.memory.MemoryCacheManager$1$1.load(MemoryCacheManager.java:67)
at com.atlassian.cache.memory.MemoryCacheManager$1$1.load(MemoryCacheManager.java:63)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
... 29 more
Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSException not found by com.atlassian.jira.plugin.ext.subversion.atlassian-jira-subversion-plugin [187]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 52 more
2016-01-29 15:40:40,191 ThreadPoolAsyncTaskExecutor::Thread 28 ERROR badmin 905x137x1 1l340a9 192.168.5.3 /rest/plugins/1.0/installed-marketplace [o.e.g.b.e.internal.support.ExtenderConfiguration] Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.atlassian.jira.plugin.ext.subversion.atlassian-jira-subversion-plugin, config=osgibundle:/META-INF/spring/*.xml))
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'subversionManager' defined in URL [bundle://187.0:0/META-INF/spring/subversion-context.xml]: Invocation of init method failed; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325)
at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290)
at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830)
at com.atlassian.cache.memory.DelegatingCachedReference.get(DelegatingCachedReference.java:58)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.getRepositoryList(MultipleSubversionRepositoryManagerImpl.java:245)
at com.atlassian.jira.plugin.ext.subversion.revisions.RevisionIndexer.initializeLatestIndexedRevisionCache(RevisionIndexer.java:140)
at com.atlassian.jira.plugin.ext.subversion.revisions.RevisionIndexer.<init>(RevisionIndexer.java:103)
at com.atlassian.jira.plugin.ext.subversion.revisions.RevisionIndexer.<init>(RevisionIndexer.java:91)
at com.atlassian.jira.plugin.ext.subversion.MultipleSubversionRepositoryManagerImpl.afterPropertiesSet(MultipleSubversionRepositoryManagerImpl.java:114)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1633)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
... 16 more
Cause
This is caused by the SVNkit components attempting to configure negotiated authentication prior to trying to configure basic authentication. As this is not a valid condition, the SVN plugin fails.
Workaround
To work around this issue, either remove the SVN plugin or disable LDAP authentication.
Resolution
Append the following option to the JAVA_OPTS:
-Dsvnkit.http.methods=Basic
See Setting Properties and Options on Startup for details on how to configure startup options.