Details
-
Bug
-
Resolution: Done
-
Low
-
5.14.1, 5.14.3.1
-
None
-
Severity 3 - Minor
-
Description
During the upgrade tasks, NullPointerException error happens
2016-12-06 15:40:05,805 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] 51406 : Convert XML data in repositories to new format. 2016-12-06 15:40:05,805 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] ------------------------------------------------------- 2016-12-06 15:40:06,012 WARN [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [UpgradeTask51406UseNewXmlFormatForRepositories] Error extracting branch name java.lang.NullPointerException at com.atlassian.bamboo.plugins.bitbucket.impl.BitbucketRepositoryHelperServiceImpl.populateHgConfigWithRepositoryDetails(BitbucketRepositoryHelperServiceImpl.java:227) at com.atlassian.bamboo.plugins.bitbucket.impl.BitbucketRepositoryHelperServiceImpl.populateFromConfig(BitbucketRepositoryHelperServiceImpl.java:129) at com.atlassian.bamboo.plugins.bitbucket.BitbucketRepository.populateFromConfig(BitbucketRepository.java:391) at com.atlassian.bamboo.vcs.configuration.legacy.configurator.LegacyBranchConfigurator.getVcsBranchFromRepositoryXml(LegacyBranchConfigurator.java:88) at com.atlassian.bamboo.upgrade.tasks.v5_14.UpgradeTask51406UseNewXmlFormatForRepositories.getNewConfiguration(UpgradeTask51406UseNewXmlFormatForRepositories.java:94) at com.atlassian.bamboo.upgrade.tasks.v5_14.UpgradeTask51406UseNewXmlFormatForRepositories.convertXmlData(UpgradeTask51406UseNewXmlFormatForRepositories.java:166) at com.atlassian.bamboo.upgrade.tasks.v5_14.UpgradeTask51406UseNewXmlFormatForRepositories.lambda$doUpgrade$0(UpgradeTask51406UseNewXmlFormatForRepositories.java:69) at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:54) at org.hibernate.internal.SessionImpl$2.accept(SessionImpl.java:2076) at org.hibernate.internal.SessionImpl$2.accept(SessionImpl.java:2073) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:313) at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2095) at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2080) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate$2.doInHibernate(BambooTransactionHibernateTemplate.java:66) at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:341) at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:309) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate$1.doInTransaction(BambooTransactionHibernateTemplate.java:52) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate.execute(BambooTransactionHibernateTemplate.java:41) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate.execute(BambooTransactionHibernateTemplate.java:47) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate.doWork(BambooTransactionHibernateTemplate.java:60) at com.atlassian.bamboo.upgrade.tasks.v5_14.UpgradeTask51406UseNewXmlFormatForRepositories.doUpgrade(UpgradeTask51406UseNewXmlFormatForRepositories.java:66) at com.atlassian.bamboo.upgrade.AbstractUpgradeManager.runUpgradeTask(AbstractUpgradeManager.java:206) at com.atlassian.bamboo.upgrade.UpgradeManagerImpl.doUpgrade(UpgradeManagerImpl.java:114) at com.atlassian.bamboo.upgrade.UpgradeLauncher$1.call(UpgradeLauncher.java:117) at com.atlassian.bamboo.upgrade.UpgradeLauncher$1.call(UpgradeLauncher.java:113) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:51) at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:31) at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:20) at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:52) at java.lang.Thread.run(Thread.java:745) ... 2016-12-06 15:40:08,612 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] Completed task 51406 successfully. 2016-12-06 15:40:08,615 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] ---------------------------------------------- 2016-12-06 15:40:08,615 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] 51407 : Convert old repository plugins to new. 2016-12-06 15:40:08,616 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] ---------------------------------------------- 2016-12-06 15:40:08,676 ERROR [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] java.lang.NullPointerException java.lang.NullPointerException at com.atlassian.bamboo.plugins.bitbucket.impl.BitbucketRepositoryHelperServiceImpl.populateHgConfigWithRepositoryDetails(BitbucketRepositoryHelperServiceImpl.java:227) at com.atlassian.bamboo.plugins.bitbucket.impl.BitbucketRepositoryHelperServiceImpl.populateFromConfig(BitbucketRepositoryHelperServiceImpl.java:129) at com.atlassian.bamboo.plugins.bitbucket.BitbucketRepository.populateFromConfig(BitbucketRepository.java:391) at com.atlassian.bamboo.vcs.configuration.legacy.configurator.LegacyBranchConfigurator.getVcsBranchFromRepositoryXml(LegacyBranchConfigurator.java:88) at com.atlassian.bamboo.vcs.configuration.service.RawRepositoryConfigurationXmlConverterImpl.fromEntity(RawRepositoryConfigurationXmlConverterImpl.java:83) at com.atlassian.bamboo.upgrade.tasks.v5_14.AbstractConvertRepositoryTypesUpgrade.convertXmlData(AbstractConvertRepositoryTypesUpgrade.java:60) at com.atlassian.bamboo.upgrade.tasks.v5_14.AbstractConvertRepositoryTypesUpgrade.lambda$upgradeRepositories$0(AbstractConvertRepositoryTypesUpgrade.java:50) at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:54) at org.hibernate.internal.SessionImpl$2.accept(SessionImpl.java:2076) at org.hibernate.internal.SessionImpl$2.accept(SessionImpl.java:2073) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.coordinateWork(JdbcCoordinatorImpl.java:313) at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2095) at org.hibernate.internal.SessionImpl.doWork(SessionImpl.java:2080) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate$2.doInHibernate(BambooTransactionHibernateTemplate.java:66) at org.springframework.orm.hibernate4.HibernateTemplate.doExecute(HibernateTemplate.java:341) at org.springframework.orm.hibernate4.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:309) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate$1.doInTransaction(BambooTransactionHibernateTemplate.java:52) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate.execute(BambooTransactionHibernateTemplate.java:41) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate.execute(BambooTransactionHibernateTemplate.java:47) at com.atlassian.bamboo.persistence.BambooTransactionHibernateTemplate.doWork(BambooTransactionHibernateTemplate.java:60) at com.atlassian.bamboo.upgrade.tasks.v5_14.AbstractConvertRepositoryTypesUpgrade.upgradeRepositories(AbstractConvertRepositoryTypesUpgrade.java:47) at com.atlassian.bamboo.upgrade.tasks.v5_14.UpgradeTask51407ConvertRepositoryTypes.doUpgrade(UpgradeTask51407ConvertRepositoryTypes.java:17) at com.atlassian.bamboo.upgrade.AbstractUpgradeManager.runUpgradeTask(AbstractUpgradeManager.java:206) at com.atlassian.bamboo.upgrade.UpgradeManagerImpl.doUpgrade(UpgradeManagerImpl.java:114) at com.atlassian.bamboo.upgrade.UpgradeLauncher$1.call(UpgradeLauncher.java:117) at com.atlassian.bamboo.upgrade.UpgradeLauncher$1.call(UpgradeLauncher.java:113) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.atlassian.bamboo.utils.BambooRunnables$1.run(BambooRunnables.java:51) at com.atlassian.bamboo.security.ImpersonationHelper.runWith(ImpersonationHelper.java:31) at com.atlassian.bamboo.security.ImpersonationHelper.runWithSystemAuthority(ImpersonationHelper.java:20) at com.atlassian.bamboo.security.ImpersonationHelper$1.run(ImpersonationHelper.java:52) at java.lang.Thread.run(Thread.java:745) 2016-12-06 15:40:08,677 INFO [15-UpgradeTaskBackgroundThread:pool-30-thread-1] [AbstractUpgradeManager] Completed task 51407 successfully.
Notes
- Even though it has NullPointerException, somehow the upgrade tasks have "Completed successfully" message.
- The upgrade should have failed
Cloud Migration specific
This can also occur if you're attempting to run upgrade tasks on an already upgrade Bamboo database. For example if you're running through the Bamboo Cloud EOL migration, you might have successfully started Bamboo at some point on your database. Then you might have replaced bamboo.cfg.xml with the one from the cloud-export.zip, which contains version information that is now out of sync with the current database version. The next time you start Bamboo it will attempt to upgrade the database from 5.12 to 5.14, which already had completed. The fix for this is:
- Shutdown Bamboo
- Restore your cloud-export.zip/database/dbDmp.dmp again (you will lose any previous modifications, but it's the only way to ensure the integrity of the data)
- Replace <bamboo-home>/bamboo.cfg.xml with the one from cloud-export.zip/bamboo-home (re-modify any database settings to point to your database server / db)
- Now your bamboo version is in sync between filesystem and database
- Start Bamboo