install problem: Could not create disk store. Initial cause was Permission denied
Asked by Julian C. Dunn:

We are trying to install Crowd 2.5.2 on a new server, and run it unprivileged as the crowd user. I have run the script here <https://confluence.atlassian.com/display/CROWD/Setting+Crowd+to+Run+Automatically+and+Use+an+Unprivileged+System+User+on+UNIX> to change the relevant directories to crowd, but when we first try to set up Crowd, the following error occurs.

Can you please advise what directory the disk store is created in, so that it could be changed in ownership to the crowd user?

Cause :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tokenDAOHibernate' defined in class path resource applicationContext-CrowdDAO.xml : Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehCacheProvider' while setting bean property 'cacheProvider'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheProvider' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehcacheManager' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcacheManager' defined in class path resource applicationContext-CrowdConsoleClient.xml : Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

Stack Trace :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tokenDAOHibernate' defined in class path resource applicationContext-CrowdDAO.xml : Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehCacheProvider' while setting bean property 'cacheProvider'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheProvider' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehcacheManager' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcacheManager' defined in class path resource applicationContext-CrowdConsoleClient.xml : Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)

at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)

at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)

at com.atlassian.config.spring.BootstrappedContainerContext.refresh(BootstrappedContainerContext.java:22)

at com.atlassian.crowd.console.setup.DefaultHibernateConfigurator.refreshSpringContextAndCreateDatabase(DefaultHibernateConfigurator.java:119)

at com.atlassian.crowd.console.setup.DefaultHibernateConfigurator.configureDatabase(DefaultHibernateConfigurator.java:58)

at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.bootstrapDatabase(DefaultAtlassianBootstrapManager.java:253)

at com.atlassian.crowd.console.action.setup.Database.configureJdbc(Database.java:299)

at com.atlassian.crowd.console.action.setup.Database.doUpdate(Database.java:96)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:358)

at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:218)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:192)

at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.atlassian.xwork.interceptors.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:58)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.atlassian.crowd.console.interceptor.SetupCheckInterceptor.intercept(SetupCheckInterceptor.java:29)

at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)

at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116)

at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:273)

at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)

at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)

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.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)

at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.atlassian.crowd.console.filter.CrowdDelegatingFilterProxy.doFilter(CrowdDelegatingFilterProxy.java:42)

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.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)

at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.atlassian.crowd.console.filter.CrowdDelegatingFilterProxy.doFilter(CrowdDelegatingFilterProxy.java:42)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.atlassian.johnson.filters.AbstractJohnsonFilter.doFilter(AbstractJohnsonFilter.java:67)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.atlassian.crowd.console.filter.CrowdOpenSessionInViewFilter.doFilterInternal(CrowdOpenSessionInViewFilter.java:30)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.atlassian.crowd.plugin.web.filter.RequestCacheThreadLocalFilter.doFilter(RequestCacheThreadLocalFilter.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.crowd.console.filter.CrowdDelegatingFilterProxy.doFilter(CrowdDelegatingFilterProxy.java:42)

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.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)

at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.atlassian.core.filters.cache.AbstractCachingFilter.doFilter(AbstractCachingFilter.java:33)

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.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:41)

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.core.filters.encoding.AbstractEncodingFilter.doFilter(AbstractEncodingFilter.java:41)

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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Thread.java:662)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehCacheProvider' while setting bean property 'cacheProvider'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheProvider' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehcacheManager' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcacheManager' defined in class path resource applicationContext-CrowdConsoleClient.xml : Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1118)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

... 112 more

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheProvider' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehcacheManager' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcacheManager' defined in class path resource applicationContext-CrowdConsoleClient.xml : Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:630)

at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1035)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:939)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

... 122 more

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcacheManager' defined in class path resource applicationContext-CrowdConsoleClient.xml : Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1455)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)

at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)

... 134 more

Caused by: net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

at net.sf.ehcache.store.DiskStore.(DiskStore.java:164)

at net.sf.ehcache.Cache.createDiskStore(Cache.java:577)

at net.sf.ehcache.Cache.initialise(Cache.java:549)

at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:707)

at net.sf.ehcache.CacheManager.addConfiguredCaches(CacheManager.java:368)

at net.sf.ehcache.CacheManager.init(CacheManager.java:235)

at net.sf.ehcache.CacheManager.(CacheManager.java:202)

at org.springframework.cache.ehcache.EhCacheManagerFactoryBean.afterPropertiesSet(EhCacheManagerFactoryBean.java:104)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)

... 141 more

Caused by: java.io.IOException: Permission denied

at java.io.UnixFileSystem.createFileExclusively(Native Method)

at java.io.File.createNewFile(File.java:883)

at net.sf.ehcache.store.DiskStore.createNewIndexFile(DiskStore.java:845)

at net.sf.ehcache.store.DiskStore.readIndex(DiskStore.java:830)

at net.sf.ehcache.store.DiskStore.initialiseFiles(DiskStore.java:193)

at net.sf.ehcache.store.DiskStore.(DiskStore.java:152)

... 150 more

Referer : [http://localhost:8095/crowd/console/setup/setupdatabase!update.action](http://localhost:8095/crowd/console/setup/setupdatabase%21update.action)

Build Information :

Version : 2.5.2 (Build:#584 - 18-10-2012)

Memory Information :

Total Memory : 235 MB

Free Memory : 167 MB

Used Memory : 67 MB

Request Information :

- Request URL : <http://localhost:8095/crowd/console/500.jsp>

- Scheme : http

- Server : localhost

- Port : 8095

- URI : /crowd/console/500.jsp

- Context Path : /crowd

- - Servlet Path : /console/500.jsp

- - Path Info : null

- - Query String :

Request Attributes :

- javax.servlet.forward.request_uri : /crowd/console/setup/setupdatabase!update.action

- javax.servlet.forward.context_path : /crowd

- javax.servlet.forward.servlet_path : /console/setup/setupdatabase!update.action

- javax.servlet.forward.path_info : /console/500.jsp

- javax.servlet.error.message :

- javax.servlet.error.status_code : 500

- webwork.valueStack : com.opensymphony.xwork.util.OgnlValueStack@65b1fd9c

- javax.servlet.error.servlet_name : default

- javax.servlet.error.exception : org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tokenDAOHibernate' defined in class path resource applicationContext-CrowdDAO.xml : Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehCacheProvider' while setting bean property 'cacheProvider'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehCacheProvider' defined in class path resource applicationContext-CrowdPersistence.xml : Cannot resolve reference to bean 'ehcacheManager' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ehcacheManager' defined in class path resource applicationContext-CrowdConsoleClient.xml : Invocation of init method failed; nested exception is net.sf.ehcache.CacheException: com.atlassian.crowd.model.token.Token.identifier-hash-cacheCache: Could not create disk store. Initial cause was Permission denied

- javax.servlet.error.request_uri : /crowd/console/setup/setupdatabase!update.action

Request Parameters:

- jdbcPassword : XXXXXXXX

- datasourceJndiName :

- jdbcHibernateDialect : org.hibernate.dialect.PostgreSQLDialect

- datasourceDatabaseType :

- datasourceHibernateDialect :

- jdbcUsername : crowd

- jdbcDatabaseType : postgresql

- jdbcUrl : jdbc:postgresql://localhost:5432/crowd

- jdbcDriverClassName : org.postgresql.Driver

- databaseOption : db.jdbc


Answers:
author: Steve Baker
body: Hey Julian!

I think I can help. Just struggled with this same exact issue myself here tonight and eventually sorted it out.

Was trying to upgrade to Crowd 2.5.2. Got everything in place, fired it up, hit our normal URL, and ... 404. Our logs were showing the same thing you were talking about:

```
"Could not create disk store.  Initial cause was permission denied"
```

I dialed our logging up to DEBUG, which now revealed the following line in atlassian-crowd.log just before all of those "Permission denied" errors:

```
2012-11-12 23:36:30,120 main DEBUG [sf.ehcache.config.DiskStoreConfiguration] Disk Store Path: /opt/atlassian/crowd/apache-tomcat/temp
```

Playing a hunch, I checked to see if that directory was owned by the "crowd" user. Sure enough, it wasn't.

Simple fix:

```
chown crowd /opt/atlassian/crowd/apache-tomcat/temp
```

After a Crowd restart, boom, everything was working again.

Give that a shot. (Obviously, your specific paths may vary.) Good luck!

comments: author: Denny Sch?fer
body: We run in the same error. Thankyou for write down a fix.


author: RAHUL MIGLANI
body: Awesome !!!!!!! I got the fix and it works !!! Thanks Steve


author: Janet Albion
body: Hi Julian,

Can't determine which directory that you need to change the ownership as this is depending on where is the INSTALL_BASE and CROWD_HOME that you have specified in the BASH file. In the guide, the example is like:  

```
#!/bin/bashCROWD_USER="crowd"CROWD_GROUP="crowd"INSTALL_BASE="/opt/crowd/atlassian-crowd-2.2.2"CROWD_HOME="/var/crowd-home"sudo chgrp ${CROWD_GROUP} ${INSTALL_BASE}/{*.sh,apache-tomcat/bin/*.sh}sudo chmod g+x ${INSTALL_BASE}/{*.sh,apache-tomcat/bin/*.sh}sudo chown -R ${CROWD_USER} ${CROWD_HOME} ${INSTALL_BASE}/apache-tomcat/{logs,work}sudo touch -a ${INSTALL_BASE}/atlassian-crowd-openid-server.logsudo mkdir ${INSTALL_BASE}/databasesudo chown -R ${CROWD_USER} ${INSTALL_BASE}/{database,atlassian-crowd-openid-server.log}
```

So, in this example the ownership should be given in for user "crowd" for directory:

* /opt/crowd/atlassian-crowd-2.2.2
* /var/crowd-home

Good luck