Backup is failling due to NPE in the user commits table

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

Symptoms

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 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

Cause

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:

1 show create table USER_COMMIT;

The response that shows the table definition is below:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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;

Resolution

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

1 update USER_COMMIT set foreign_commit = false where foreign_commit is Null;
Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.