Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-973

If LDAP directory becomes unavailable, cannot remove from application in Crowd

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: High High
    • 1.5
    • 1.3.2
    • Directory - LDAP
    • None

      When attempting to access the application in Crowd that contains the problem directory, the following error is thrown:

      javax.servlet.ServletException: Transaction rolled back because it has been marked as rollback-only
      	at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:284)
      	at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
      	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      	at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      	at com.atlassian.crowd.integration.http.VerifyTokenFilter.doFilter(VerifyTokenFilter.java:172)
      	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
      	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
      	at com.atlassian.crowd.console.filter.CrowdDelegatingFilterProxy.doFilter(CrowdDelegatingFilterProxy.java:38)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
      	at com.atlassian.crowd.console.filter.CrowdOpenSessionInViewFilter.doFilterInternal(CrowdOpenSessionInViewFilter.java:26)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      	at com.atlassian.gzipfilter.GzipFilter.doFilter(GzipFilter.java:81)
      	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
      	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
      

      However, the actualy exception in Crowd is:

      2008-04-09 17:36:00,073 http-8095-Processor7 ERROR [codehaus.xfire.handler.DefaultFaultHandler] Fault occurred!
      org.springframework.dao.DataRetrievalFailureException: Unable to communicate with LDAP server; nested exception is javax.naming.CommunicationException: maltshovel:389 [Root exception is java.net.ConnectException: Connection refused]
      Caused by: 
      javax.naming.CommunicationException: maltshovel:389 [Root exception is java.net.ConnectException: Connection refused]
      	at com.sun.jndi.ldap.Connection.<init>(Connection.java:204)
      	at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:118)
      	at com.sun.jndi.ldap.LdapClientFactory.createPooledConnection(LdapClientFactory.java:44)
      	at com.sun.jndi.ldap.pool.Connections.<init>(Connections.java:97)
      	at com.sun.jndi.ldap.pool.Pool.getPooledConnection(Pool.java:114)
      	at com.sun.jndi.ldap.LdapPoolManager.getLdapClient(LdapPoolManager.java:310)
      	at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1572)
      	at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2596)
      	at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:283)
      	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
      	at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
      	at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
      

      Wrapping a try/catch around ldapTemplate.search(baseDN, filter.encode(), searchControls, handler, requestControl); in SpringLDAPConnector.java's pageSearchResults method seems to fix the issue. May not be the best approach for a patch though.

            [CWD-973] If LDAP directory becomes unavailable, cannot remove from application in Crowd

            Monique Khairuliana (Inactive) made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 - restricted [ 1509635 ] New: JAC Bug Workflow v3 [ 3365503 ]
            Owen made changes -
            Workflow Original: Simplified Crowd Development Workflow v2 [ 1391809 ] New: Simplified Crowd Development Workflow v2 - restricted [ 1509635 ]
            Owen made changes -
            Workflow Original: Crowd Development Workflow v2 [ 273504 ] New: Simplified Crowd Development Workflow v2 [ 1391809 ]
            jawong.adm made changes -
            Workflow Original: JIRA Bug Workflow v2 [ 174465 ] New: Crowd Development Workflow v2 [ 273504 ]
            Justin Koke made changes -
            Workflow Original: jira [ 124981 ] New: JIRA Bug Workflow v2 [ 174465 ]
            DonnaA made changes -
            Resolution New: Fixed [ 1 ]
            Status Original: Open [ 1 ] New: Closed [ 6 ]

            DonnaA added a comment -

            Fixed as a result of the CWD-1073 fix

            DonnaA added a comment - Fixed as a result of the CWD-1073 fix
            DonnaA made changes -
            Component/s New: LDAP [ 11873 ]

            Any idea when this issue will be fixed? I have been waiting some time now.
            I want to upgrade confluence to latest version but will then need to upgrade crowd to at least 1.4.x
            I don't want to upgrade Crowd twice.

            Please advise on an ETA for this fix.
            Thanks

            Stephanie Russell added a comment - Any idea when this issue will be fixed? I have been waiting some time now. I want to upgrade confluence to latest version but will then need to upgrade crowd to at least 1.4.x I don't want to upgrade Crowd twice. Please advise on an ETA for this fix. Thanks
            DonnaA made changes -
            Link New: This issue is related to CWD-422 [ CWD-422 ]

              doflynn David O'Flynn [Atlassian]
              donna@atlassian.com DonnaA
              Affected customers:
              2 This affects my team
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: