Request processing failed; nested exception is org.springframework.transaction.IllegalTransactionStateException

StackOverflow https://stackoverflow.com/questions/22148197

Pregunta

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";
        }
    }
¿Fue útil?

Solución

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";
        }
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top