CSP-12084 - Crowd and Confluence compatibility library issues

Product: Confluence

Environment

Operating System  
Affect Version/s 2.6.0
JVM  
Database PostgreSQL
Application Server Resin 3.0.x

Error Message

@4000000047019e2e07813de4 2007-10-01 20:25:56,110 INFO [main] [com.atlassian.confluence.lifecycle] contextInitialized Starting Confluence 2.6.0 (build #913)
@4000000047019e3307ea0234 [20:26:01.132] Loading Spring root WebApplicationContext
@4000000047019e4c09bc9b6c 2007-10-01 20:26:26,150 ERROR [main] [user.configuration.xml.XMLConfigurationParser] instantiateProcessor Could not instantiate proces
sor: com.atlassian.crowd.integration.atlassianuser.CrowdRepositoryProcessor [java.lang.NoClassDefFoundError: com/atlassian/user/configuration/AbstractRepository
Processor]
@4000000047019e4c0cb768c4 2007-10-01 20:26:26,203 WARN [main] [beans.factory.support.CglibSubclassingInstantiationStrategy] instantiate Factory method [public c
om.atlassian.user.configuration.DelegationAccessor com.atlassian.user.configuration.xml.XMLConfiguration.getDelegationAccessor()] threw exception

500 Servlet Exception

java.lang.NullPointerException
at com.atlassian.spring.container.ContainerManager.getComponent(ContainerManager.java:32)
at com.atlassian.confluence.core.ConfluenceActionSupport.getLocaleManager(ConfluenceActionSupport.java:612)
at com.atlassian.confluence.core.ConfluenceActionSupport.getLocale(ConfluenceActionSupport.java:546)
at com.atlassian.confluence.core.ConfluenceActionSupport.getI18n(ConfluenceActionSupport.java:600)
at com.atlassian.confluence.admin.actions.ViewSystemInfoAction.getUptime(ViewSystemInfoAction.java:270)
at com.atlassian.confluence.admin.actions.ViewSystemInfoAction.getBuildStats(ViewSystemInfoAction.java:126)
at jsp._500page_jsp._jspService(500page.jsp:71)
at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
at com.caucho.jsp.Page.pageservice(Page.java:570)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
at com.caucho.server.webapp.RequestDispatcherImpl.error(RequestDispatcherImpl.java:113)
at com.caucho.server.webapp.ErrorPageManager.sendServletError(ErrorPageManager.java:362)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:175)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:511)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
at java.lang.Thread.run(Thread.java:595)

Symptom

Diagnostics/Test

  • Use of Incompatible Crowd libraries

Check what version of Crowd does the Confluence instance have in confluence's WEB-INF/lib ?
Crowd will be fine at version 1.1.1, it is the client code that needs to be running at the later version 1.1.2.

Reference: http://confluence.atlassian.com/display/CROWD/3.2.3+Integrating+Crowd+with+Atlassian+Confluence step 2.1.1

Use {{ ls -lah crowd}} inside the WEB-INF/lib folder to list the current libraries

rw-rr- 1 ... 54K Oct 1 20:54 crowd-atlassian-user-1.1.2.jar
rw-rr- 1 ... 285K Oct 1 20:54 crowd-core-1.1.2.jar

  • atlassian-user.xml does not conform to 2.2.2
[user.configuration.xml.XMLConfigurationParser] instantiateProcessor Could not instantiate proces
com.atlassian.crowd.integration.atlassianuser.CrowdRepositoryProcessor [java.lang.NoClassDefFoundError: com/atlassian/user/configuration/AbstractRepository

The error above implies that the XML parser that reads the atlassian-user.xml encountered a problem, syntaxtic, with the atlassian-user.xml file.

Root Cause

  • atlassian-user.xml validity

Up to the version 2.5.6 of Confluence user had to add the Crowd classes to the atlassian-user.xml file to specify the correct source of the repository.
Edit the CONFLUENCE/confluence/WEB-INF/classes/atlassian-user.xml file so that the contents of the file is:


<repository key="crowd" class="com.atlassian.crowd.integration.atlassianuser.CrowdRepository">
<classes>
<processor>com.atlassian.crowd.integration.atlassianuser.CrowdRepositoryProcessor</processor>
<userManager>com.atlassian.crowd.integration.atlassianuser.CrowdUserManager</userManager>
<groupManager>com.atlassian.crowd.integration.atlassianuser.CrowdGroupManager</groupManager>

<authenticator>com.atlassian.crowd.integration.atlassianuser.CrowdAuthenticator</authenticator>
<propertySetFactory>com.atlassian.crowd.integration.atlassianuser.CrowdPropertySetFactory</propertySetFactory>
<entityQueryParser>com.atlassian.crowd.integration.atlassianuser.CrowdEntityQueryParser</entityQueryParser>
</classes>
</repository>


Since the 2.5.6 release, only the following Crowd repository name is required.


<repositories>
<crowd key="crowd" name="Crowd Repository"/>
</repositories>
</atlassian-user>


Solution

  • I have found that crowd is not version 1.1.2, it is running 1.1.1. The jars are version 1.1.2.
  • get the correct libraries
  • ensure there are no duplicate libraries in the WEB-INF/lib
  • You can see a situation where you have Crowd 1.1.1 running with the crowd-* 1.1.2 libs and experiencing a problem.

In this case the atlassian-user.xml could be the culprit.

Labels

confluence confluence Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.