Unable to Access User Directories Screen After Deletion of An User Directory
Symptoms
After the deletion of an user directory, it is no longer possible to access the User Directories screen.
The following appears in the atlassian-confluence.log
:
2013-05-14 10:48:48,901 ERROR [http-8090-26] [atlassian.plugin.servlet.ServletModuleContainerServlet] service Request processing failed; nested exception is com.atlassian.crowd.exception.runtime.OperationFailedException
-- url: /plugins/servlet/embedded-crowd/directories/list | userName: pcanham | referer: https://docs.cambridge.org/admin/console.action
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.atlassian.crowd.exception.runtime.OperationFailedException
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:583)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.atlassian.plugin.servlet.DelegatingPluginServlet.service(DelegatingPluginServlet.java:42)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at com.atlassian.plugin.servlet.ServletModuleContainerServlet.service(ServletModuleContainerServlet.java:52)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.confluence.web.filter.DebugFilter.doFilter(DebugFilter.java:44)
at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
...
Caused by: com.atlassian.crowd.exception.runtime.OperationFailedException
at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.getDirectorySynchronisationInformation(CrowdDirectoryServiceImpl.java:241)
at sun.reflect.GeneratedMethodAccessor4196.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
...
Caused by: com.atlassian.crowd.exception.DirectoryNotFoundException: Directory <1441793> does not exist
at com.atlassian.crowd.embedded.hibernate2.HibernateDirectoryDao.findById(HibernateDirectoryDao.java:37)
at com.atlassian.crowd.embedded.hibernate2.HibernateDirectoryDao.findById(HibernateDirectoryDao.java:25)
at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.findDirectoryById(DirectoryManagerGeneric.java:148)
at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.getDirectoryImplementation(DirectoryManagerGeneric.java:273)
at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.getDirectorySynchronisationInformation(DirectoryManagerGeneric.java:261)
at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.getDirectorySynchronisationInformation(CrowdDirectoryServiceImpl.java:233)
... 229 more
Cause
When deleting a directory, the information of the deleted directory may still remain in the cache. This issue is being tracked here: CONF-33693 - Getting issue details... STATUS
Workaround
The solution to this problem is to flush in-memory caches:
- Click on the cog icon and select Confluence Admin.
- Go to Cache Statistics under the heading ADMINISTRATION in the left-hand side menu.
- Click on Flush all to clear the in-memory cache stores in Confluence.
Alternatively, restarting Confluence will also resolve this issue since the in-memory cache will be cleared as a result.