Issue
Can you please help me on this error
HTTP Status 500 - Request processing failed; nested exception is org.springframework.transaction.IllegalTransactionStateException: Transaction is already completed - do not call commit or rollback more than once per transaction
Code
@Override
public String saveTemplatesToPCA(List<FilesTemplateDomain> fileTemplates) {
TransactionDefinition transactionDefinition = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(transactionDefinition);
try {
template.saveOrUpdateAll(fileTemplates);
transactionManager.commit(status);
return "success";
} catch (Exception e) {
transactionManager.rollback(status);
System.out.println("Exception in saveTemplatesToPCA() : "+e);
return "fail";
}
}
Solution
Handle this Exception
@Override
public String saveTemplatesToPCA(List<FilesTemplateDomain> fileTemplates) {
TransactionDefinition transactionDefinition = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(transactionDefinition);
try {
template.saveOrUpdateAll(fileTemplates);
transactionManager.commit(status);
return "success";
} catch (Exception e) {
try{
transactionManager.rollback(status);
}catch(Exception ee){
System.out.println("Exception in commit or rollback : "+ee);
}
System.out.println("Exception in saveTemplatesToPCA() : "+e);
return "fail";
}
}
Answered By - Kanhu Bhol
Answer Checked By - Marie Seifert (JavaFixing Admin)