Issue Summary
Bamboo Build plan not triggering the build when exceeding COMMIT_FILES.commit_file_name column limit ( Default length="1000")
Steps to Reproduce
- Create a plan containing Repository
- Make a file within nest folders in side the repository , where the full path name contains more than 1000 characters
- commit and push the change to the repository
- monitor the Bamboo logs for the ChangeDetectionListenerAction to start
Expected Results
Bamboo should finish change detection and trigger the builds.
Actual Results
The below exception is thrown in the atlassian-bamboo.log file:
2025-11-13 00:22:55,722 INFO [17-BAM::PlanExec:pool-18-thread-2] [AbstractBatchImpl] HHH000010: On release of batch it still contained JDBC statements 2025-11-13 00:22:55,722 ERROR [17-BAM::PlanExec:pool-18-thread-2] [BatchingBatch] HHH000315: Exception executing batch [java.sql.BatchUpdateException: Batch entry 0 insert into COMMIT_FILES (COMMIT_ID, COMMIT_FILE_NAME, COMMIT_FILE_REIVISION) values (('1507338'::int8), ('JTestfolder_1/JTestfolder_2/JTestfolder_3/JTestfolder_4/JTestfolder_5/JTestfolder_6/JTestfolder_7/JTestfolder_8/JTestfolder_9/JTestfolder_10/JTestfolder_11/JTestfolder_12/JTestfolder_13/JTestfolder_14/JTestfolder_15/JTestfolder_16/JTestfolder_17/JTestfolder_18/JTestfolder_19/JTestfolder_20/JTestfolder_21/JTestfolder_22/JTestfolder_23/JTestfolder_24/JTestfolder_25/JTestfolder_26/JTestfolder_27/JTestfolder_28/JTestfolder_29/JTestfolder_30/JTestfolder_31/JTestfolder_32/JTestfolder_33/JTestfolder_34/JTestfolder_35/JTestfolder_36/JTestfolder_37/JTestfolder_38/JTestfolder_39/JTestfolder_40/JTestfolder_41/JTestfolder_42/JTestfolder_43/JTestfolder_44/JTestfolder_45/JTestfolder_46/JTestfolder_47/JTestfolder_48/JTestfolder_49/JTestfolder_50/JTestfolder_51/JTestfolder_52/JTestfolder_53/JTestfolder_54/JTestfolder_55/JTestfolder_56/JTestfolder_57/JTestfolder_58/JTestfolder_59/JTestfolder_60/JTestfolder_61/JTestfolder_62/JTestfolder_63/JTestfolder_64/JTestfolder_65/JTestfolder_66/JTestfolder_67/JTestfolder_68/JTestfolder_69/JTestfolder_70/S'), ('62273c63f10096374d626d6d3d78e80410499f0c')) was aborted: ERROR: value too long for type character varying(1000) Call getNextException to see other errors in the batch.], SQL: insert into COMMIT_FILES (COMMIT_ID, COMMIT_FILE_NAME, COMMIT_FILE_REIVISION) values (?, ?, ?) 2025-11-13 00:22:55,722 WARN [17-BAM::PlanExec:pool-18-thread-2] [SqlExceptionHelper] SQL Error: 0, SQLState: 22001 2025-11-13 00:22:55,722 ERROR [17-BAM::PlanExec:pool-18-thread-2] [SqlExceptionHelper] Batch entry 0 insert into COMMIT_FILES (COMMIT_ID, COMMIT_FILE_NAME, COMMIT_FILE_REIVISION) values (('1507338'::int8), ('JTestfolder_1/JTestfolder_2/JTestfolder_3/JTestfolder_4/JTestfolder_5/JTestfolder_6/JTestfolder_7/JTestfolder_8/JTestfolder_9/JTestfolder_10/JTestfolder_11/JTestfolder_12/JTestfolder_13/JTestfolder_14/JTestfolder_15/JTestfolder_16/JTestfolder_17/JTestfolder_18/JTestfolder_19/JTestfolder_20/JTestfolder_21/JTestfolder_22/JTestfolder_23/JTestfolder_24/JTestfolder_25/JTestfolder_26/JTestfolder_27/JTestfolder_28/JTestfolder_29/JTestfolder_30/JTestfolder_31/JTestfolder_32/JTestfolder_33/JTestfolder_34/JTestfolder_35/JTestfolder_36/JTestfolder_37/JTestfolder_38/JTestfolder_39/JTestfolder_40/JTestfolder_41/JTestfolder_42/JTestfolder_43/JTestfolder_44/JTestfolder_45/JTestfolder_46/JTestfolder_47/JTestfolder_48/JTestfolder_49/JTestfolder_50/JTestfolder_51/JTestfolder_52/JTestfolder_53/JTestfolder_54/JTestfolder_55/JTestfolder_56/JTestfolder_57/JTestfolder_58/JTestfolder_59/JTestfolder_60/JTestfolder_61/JTestfolder_62/JTestfolder_63/JTestfolder_64/JTestfolder_65/JTestfolder_66/JTestfolder_67/JTestfolder_68/JTestfolder_69/JTestfolder_70/S'), ('62273c63f10096374d626d6d3d78e80410499f0c')) was aborted: ERROR: value too long for type character varying(1000) Call getNextException to see other errors in the batch. 2025-11-13 00:22:55,723 ERROR [17-BAM::PlanExec:pool-18-thread-2] [SqlExceptionHelper] ERROR: value too long for type character varying(1000) 2025-11-13 00:22:55,723 ERROR [17-BAM::PlanExec:pool-18-thread-2] [ChainExecutionManagerImpl] Plan 'TEST-TES' could not be started. Exception: could not execute batch; SQL [insert into COMMIT_FILES (COMMIT_ID, COMMIT_FILE_NAME, COMMIT_FILE_REIVISION) values (?, ?, ?)]; nested exception is org.hibernate.exception.DataException: could not execute batch org.springframework.dao.DataIntegrityViolationException: could not execute batch; SQL [insert into COMMIT_FILES (COMMIT_ID, COMMIT_FILE_NAME, COMMIT_FILE_REIVISION) values (?, ?, ?)]; nested exception is org.hibernate.exception.DataException: could not execute batch at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:216) ~[spring-orm-5.3.39-atlassian-4.jar:5.3.39-atlassian-4] ......... Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into COMMIT_FILES (COMMIT_ID, COMMIT_FILE_NAME, COMMIT_FILE_REIVISION) values (('1507338'::int8), ('JTestfolder_1/JTestfolder_2/JTestfolder_3/JTestfolder_4/JTestfolder_5/JTestfolder_6/JTestfolder_7/JTestfolder_8/JTestfolder_9/JTestfolder_10/JTestfolder_11/JTestfolder_12/JTestfolder_13/JTestfolder_14/JTestfolder_15/JTestfolder_16/JTestfolder_17/JTestfolder_18/JTestfolder_19/JTestfolder_20/JTestfolder_21/JTestfolder_22/JTestfolder_23/JTestfolder_24/JTestfolder_25/JTestfolder_26/JTestfolder_27/JTestfolder_28/JTestfolder_29/JTestfolder_30/JTestfolder_31/JTestfolder_32/JTestfolder_33/JTestfolder_34/JTestfolder_35/JTestfolder_36/JTestfolder_37/JTestfolder_38/JTestfolder_39/JTestfolder_40/JTestfolder_41/JTestfolder_42/JTestfolder_43/JTestfolder_44/JTestfolder_45/JTestfolder_46/JTestfolder_47/JTestfolder_48/JTestfolder_49/JTestfolder_50/JTestfolder_51/JTestfolder_52/JTestfolder_53/JTestfolder_54/JTestfolder_55/JTestfolder_56/JTestfolder_57/JTestfolder_58/JTestfolder_59/JTestfolder_60/JTestfolder_61/JTestfolder_62/JTestfolder_63/JTestfolder_64/JTestfolder_65/JTestfolder_66/JTestfolder_67/JTestfolder_68/JTestfolder_69/JTestfolder_70/S'), ('62273c63f10096374d626d6d3d78e80410499f0c')) was aborted: ERROR: value too long for type character varying(1000) Call getNextException to see other errors in the batch. at org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165) ~[postgresql-42.7.7.jar:42.7.7]
Workaround
- Increasing the column size to accommodate the extra file name characters
ALTER TABLE COMMIT_FILES ALTER COLUMN COMMIT_FILE_NAME TYPE VARCHAR(2000);