Backup is failling due to NPE in the user commits table

プラットフォームについて: Data Center のみ。 - This article only applies to Atlassian apps on the Data Center プラットフォーム

この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。

*Fisheye および Crucible は除く

症状

Bamboo export fails to complete the backup process and the server just crashes. The following appears in the log files:

24 12:43:56,501 INFO [http-bio-8085-exec-17] [XmlMigrator] Unmounted /home/sultan/bamboo-home/exports/export.zip 2015-04-24 12:43:56,503 INFO [http-bio-8085-exec-17] [ServerLifecycleManagerImpl] Server state changed to 'RUNNING' from 'PAUSED' by 'sultan' 2015-04-24 12:43:56,503 ERROR [http-bio-8085-exec-17] [Export] org.springframework.orm.hibernate.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.atlassian.bamboo.commit.CommitImpl.setForeignCommit; nested exception is net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.atlassian.bamboo.commit.CommitImpl.setForeignCommit org.springframework.orm.hibernate.HibernateSystemException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.atlassian.bamboo.commit.CommitImpl.setForeignCommit; nested exception is net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.atlassian.bamboo.commit.CommitImpl.setForeignCommit at org.springframework.orm.hibernate.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:598) at org.springframework.orm.hibernate.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:353) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:375) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337) at com.atlassian.bamboo.persistence3.BambooHibernateObjectDao.executeReturnLong(BambooHibernateObjectDao.java:102) at com.atlassian.bamboo.commit.CommitHibernateDao.scrollCommitsForExport(CommitHibernateDao.java:40) at sun.reflect.GeneratedMethodAccessor64220.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) . . . Caused by: net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of com.atlassian.bamboo.commit.CommitImpl.setForeignCommit at net.sf.hibernate.persister.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:220) at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:2226) at net.sf.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:319) at net.sf.hibernate.loader.Loader.loadSingleRow(Loader.java:165) at net.sf.hibernate.hql.QueryTranslator.loadSingleRow(QueryTranslator.java:182) at net.sf.hibernate.impl.ScrollableResultsImpl.prepareCurrentRow(ScrollableResultsImpl.java:412) at net.sf.hibernate.impl.ScrollableResultsImpl.next(ScrollableResultsImpl.java:94) at org.springframework.orm.hibernate.ScrollHibernateCallback.doInHibernate(ScrollHibernateCallback.java:53) at org.springframework.orm.hibernate.ScrollHibernateCallback.doInHibernate(ScrollHibernateCallback.java:13) at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370) ... 270 more Caused by: net.sf.cglib.beans.BulkBeanException at com.atlassian.bamboo.commit.CommitImpl$$BulkBeanByCGLIB$$5b90e0f.setPropertyValues(<generated>) at net.sf.hibernate.persister.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:215) ... 279 more Caused by: java.lang.NullPointerException ... 281 more

原因

The root cause of this issue is that the user_commit table has a column foreign_commit which can only accept a boolean value (true or false). Now if you have some builds with the user commit saved with a null value for that column, then bamboo complains and fails with the NPE above. Below is the current definition of the table on a mysql database:

show create table USER_COMMIT;

The response that shows the table definition is below:

CREATE TABLE `USER_COMMIT` ( `COMMIT_ID` bigint(20) NOT NULL, `REPOSITORY_CHANGESET_ID` bigint(20) DEFAULT NULL, `AUTHOR_ID` bigint(20) DEFAULT NULL, `COMMIT_DATE` datetime DEFAULT NULL, `COMMIT_REVISION` varchar(4000) DEFAULT NULL, `COMMIT_COMMENT_CLOB` longtext, `FOREIGN_COMMIT` bit(1) NOT NULL DEFAULT b'0', PRIMARY KEY (`COMMIT_ID`), KEY `commit_authorId` (`AUTHOR_ID`), KEY `commit_repositoryChangesetId` (`REPOSITORY_CHANGESET_ID`), KEY `commit_rev_idx` (`COMMIT_REVISION`(255)), KEY `FKF8936C2BD283B32B` (`REPOSITORY_CHANGESET_ID`), KEY `FKF8936C2B64E003F0` (`AUTHOR_ID`), CONSTRAINT `FKF8936C2B64E003F0` FOREIGN KEY (`AUTHOR_ID`) REFERENCES `AUTHOR` (`AUTHOR_ID`), CONSTRAINT `FKF8936C2BD283B32B` FOREIGN KEY (`REPOSITORY_CHANGESET_ID`) REFERENCES `REPOSITORY_CHANGESET` (`REPOSITORY_CHANGESET_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ソリューション

Shutdown bamboo, run the below query and restart bamboo to fix the issue

update USER_COMMIT set foreign_commit = false where foreign_commit is Null;
更新日時: September 25, 2025

さらにヘルプが必要ですか?

アトラシアン コミュニティをご利用ください。