Ад. Я пытаюсь выяснить ошибку исключения коммита при выполнении весеннего пакетного задания. Я работаю над добавлением исключения SQL к нашей обработке фиксации в Hibernate, потому что обычное исключение не кажется полезным. Вот код, который у меня сейчас есть:
if (editRollBackNeeded) {
try {
hibernateTransaction.setRollbackOnly();
hibernateTransaction.rollback();
returnCode = 16;
logger.info(" ");
logger.info("RECORD EDIT ERROR " + "ROLLBACK OCCURRED - INVESTIGATE");
logger.info(" ");
message = message + " " + System.lineSeparator()
+ "RECORD EDIT ERROR " + "ROLLBACK OCCURRED - INVESTIGATE " + System.lineSeparator();
terminateProcess(returnCode, message) ;
} catch (Exception rollbackE) {
logger.info("ROLLBACK EXCEPTION " + rollbackE.getMessage() + " OCCURRED - INVESTIGATE");
message = message + " " + System.lineSeparator()
+ "ROLLBACK EXCEPTION WAS " + rollbackE.getMessage() + System.lineSeparator()
+ " " + System.lineSeparator();
}
} else {
try {
hibernateTransaction.commit();
} catch (SQLException commitExcep) {
commitExcep.printStackTrace(pw);
logger.info("COMMIT EXCEPTION WAS " + sw.toString());
logger.debug("COMMIT LOCAL MESSAGE " + Arrays.asList(commitExcep.getLocalizedMessage()));
logger.info(sw.toString()) ;
message = message + " " + System.lineSeparator()
+ "COMMIT EXCEPTION WAS " + sw.toString() + System.lineSeparator()
+ " " + System.lineSeparator();
if (hibernateTransaction != null) {
try {
hibernateTransaction.rollback();
returnCode = 16;
logger.info("SQL ERROR " + "ROLLBACK OCCURRED - INVESTIGATE");
logger.info(" ");
message = message + " " + System.lineSeparator()
+ "SQL ERROR " + "ROLLBACK OCCURRED - INVESTIGATE " + System.lineSeparator();
} catch (Exception rollbackE) {
logger.info("ROLLBACK EXCEPTION " + rollbackE.getMessage() + " OCCURRED - INVESTIGATE");
returnCode = 16;
terminateProcess(returnCode, message) ;
}
} else {
}
}
}
Он находится в части AfterStep пакета Spring. Я выбрасываю все исключения, особенно исключения SQL. Я получаю сообщение об ошибке компиляции, в котором говорится, что «SQLExecution никогда не добавляется в тело соответствующего оператора try». На самом деле я не понимаю этого, так как у меня есть эта ошибка.
Спасибо