Bamboo does not launch: Application context refresh failed

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

Bamboo does not launch and the logs show that the application context refresh failed due to a NullPointerException.

Diagnosis

The logs show a NullPointerException related to log4jAnalyticsLogger.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2021-08-09 20:04:50,484 ERROR [ThreadPoolAsyncTaskExecutor::Thread 13] [ExtenderConfiguration] Application context refresh failed (NonValidatingOsgiBundleXmlApplicationContext(bundle=com.atlassian.analytics.client, config=osgibundle:/META-INF/spring/*.xml)) org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bambooEventListener' defined in OSGi resource[classpath:com/atlassian/analytics/client/spring/product/BambooBeans.class|bnd.id=20|bnd.sym=com.atlassian.analytics.client]: Unsatisfied dependency expressed through method 'bambooEventListener' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productAnalyticsEventListener' defined in OSGi resource[classpath:com/atlassian/analytics/client/spring/shared/SharedBeans.class|bnd.id=20|bnd.sym=com.atlassian.analytics.client]: Unsatisfied dependency expressed through method 'productAnalyticsEventListener' parameter 4; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'log4jAnalyticsLogger' defined in OSGi resource[classpath:com/atlassian/analytics/client/spring/shared/SharedBeans.class|bnd.id=20|bnd.sym=com.atlassian.analytics.client]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.atlassian.analytics.client.logger.Log4jAnalyticsLogger]: Factory method 'log4jAnalyticsLogger' threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:509) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1320) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1159) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:847) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:57) at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:322) at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85) at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:287) at org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [...]

Cause

The errors indicate that the user running Bamboo does not have full ownership of the Bamboo directories and its files, specifically the log files (as per the log4jAnalyticsLogger reference).

Solution

Double check if the user running Bamboo has full ownership of the entire <BAMBOO-HOME> directory, all its sub-folders and files.

Linux / macOS

Option 1: Change the ownership of the home directory and its contents, recursively:

1 sudo chown -R <BAMBOO-USER>: <BAMBOO_HOME_DIRECTORY>

Option 2: You can also run the following command to see a list of files and directories that are owned by any user other than the one running Bamboo:

1 find <BAMBOO_HOME_DIRECTORY> ! -user <BAMBOO_USER> -print

You can then change the ownership for those files individually:

1 sudo chown <BAMBOO_USER>: <PATH_TO_FILE>

ℹ️ Both options require Bamboo to be restarted in order for the changes to take effect.

Windows

  1. Right click on <BAMBOO_HOME_DIRECTORY> and hit Properties.

  2. Navigate to the Security Tab and make sure that the user running Bamboo has Full Control of this folder.

  3. Upon any changes, you'll be prompted to either apply the same permissions to all sub-folders. Click Yes.

  4. Restart Bamboo.

Updated on April 2, 2025

Still need help?

The Atlassian Community is here for you.