Buggy code:
public final class BatchProcedureExecutionConnectionCallback implements ConnectionCallback < Object > { private static final Logger log = LoggerFactory . getLogger ( BatchProcedureExecutionConnectionCallback . class ) ; private static ConcurrentMap < String , StoredProcedureMetaData > storedProceduresMap = new ConcurrentHashMap < > ( ) ; private String procName ; private List < MapSqlParameterSource > executions ; private SimpleJdbcCallsHandler handler ; public BatchProcedureExecutionConnectionCallback ( SimpleJdbcCallsHandler handler , String procName , List < MapSqlParameterSource > executions ) { } @ Override public Object doInConnection ( Connection con ) throws SQLException , DataAccessException { <START_BUG> BatchProcedureExecutionConnectionCallback . log . debug ( "Executing<seq2seq4repair_space>batch<seq2seq4repair_space>for<seq2seq4repair_space>procedure<seq2seq4repair_space>'{}'" , procName ) ; <END_BUG> StoredProcedureMetaData procMetaData = getStoredProcedureMetaData ( procName , con ) ; try ( CallableStatement stmt = con . prepareCall ( procMetaData . getSqlCommand ( ) ) ) { for ( MapSqlParameterSource execution : executions ) { mapParams ( stmt , execution , procMetaData . getParamatersMetaData ( ) ) ; stmt . addBatch ( ) ; } stmt . executeBatch ( ) ; BatchProcedureExecutionConnectionCallback . log . debug ( "Executed<seq2seq4repair_space>batch" ) ; } catch ( SQLException e ) { BatchProcedureExecutionConnectionCallback . log . error ( "Can't<seq2seq4repair_space>execute<seq2seq4repair_space>batch:<seq2seq4repair_space>{}" , e . getMessage ( ) ) ; BatchProcedureExecutionConnectionCallback . log . debug ( "Exception" , e ) ; if ( ( e . getNextException ( ) ) != null ) { BatchProcedureExecutionConnectionCallback . log . error ( "Can't<seq2seq4repair_space>execute<seq2seq4repair_space>batch.<seq2seq4repair_space>Next<seq2seq4repair_space>exception<seq2seq4repair_space>is:<seq2seq4repair_space>{}" , e . getNextException ( ) . getMessage ( ) ) ; BatchProcedureExecutionConnectionCallback . log . debug ( "Exception" , e . getNextException ( ) ) ; } throw e ; } return null ; } private StoredProcedureMetaData getStoredProcedureMetaData ( String procName , Connection con ) throws SQLException { } private void fillProcMetaData ( String procName , Connection con , StoredProcedureMetaData procMetaData ) throws SQLException { } private BatchProcedureExecutionConnectionCallback . ProcData fillProcData ( ResultSet rs , int internalCounter ) throws SQLException { } private void mapParams ( PreparedStatement stmt , MapSqlParameterSource paramSource , Map < String , SqlCallParameter > paramOrder ) throws SQLException { } private static class ProcData { private String colName ; private int ordinal ; private int dataType ; private String procName ; private String schemaName ; private String dbTypeName ; public String getColName ( ) { } public void setColName ( String colName ) { } public int getOrdinal ( ) { } public void setOrdinal ( int ordinal ) { } public int getDataType ( ) { } public void setDataType ( int dataType ) { } public String getProcName ( ) { } public void setProcName ( String procName ) { } public String getSchemaName ( ) { } public void setSchemaName ( String schemaName ) { } public String getDbTypeName ( ) { } public void setDbTypeName ( String dbTypeName ) { } } }

Fix:
BatchProcedureExecutionConnectionCallback . log . debug ( ( "Executing<seq2seq4repair_space>batch<seq2seq4repair_space>for<seq2seq4repair_space>procedure<seq2seq4repair_space>" + ( procName ) ) ) ;