diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java index 54a0e2036..1072eee7a 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CorridaServiceImpl.java @@ -1044,7 +1044,7 @@ public class CorridaServiceImpl implements CorridaService { DefaultTransactionDefinition def = new DefaultTransactionDefinition(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus status = transactionManager.getTransaction(def); - List lsEsquemaCorrida = esquemaCorridaService.buscaDentroVigenciaQtdeDiasNotNull(dataDeOriginal); + List lsEsquemaCorrida = esquemaCorridaService.buscaDentroVigenciaQtdeDiasNotNull(dataDeOriginal); for (EsquemaCorrida esquemaCorrida : lsEsquemaCorrida) { log.debug("esquemaCorrida=" + esquemaCorrida.getEsquemacorridaId()); @@ -1069,31 +1069,30 @@ public class CorridaServiceImpl implements CorridaService { if (DateUtil.compareOnlyDate(dataAte, esquemaCorrida.getEsquemaOperacional().getFecfinvigencia()) > 0) { log.info("Cant dias excede final de la vigencia"); - dataAte = esquemaCorrida.getEsquemaOperacional().getFecfinvigencia(); } - while (DateUtil.compareOnlyDate(dataDe, dataAte) <= 0) { - - Boolean isFeriado = this.isFeriado(new java.sql.Date(dataDe.getTime()), esquemaCorrida); - - generarCorrida(esquemaCorrida, dataDe, false, isFeriado); - - calendarData.setTime(dataDe); - calendarData.add(Calendar.DATE, 1); - dataDe = calendarData.getTime(); - } - - log.info("commit bloco corridas"); - - transactionManager.commit(status); - status = transactionManager.getTransaction(def); - + try { + while (DateUtil.compareOnlyDate(dataDe, dataAte) <= 0) { + Boolean isFeriado = this.isFeriado(new java.sql.Date(dataDe.getTime()), esquemaCorrida); + generarCorrida(esquemaCorrida, dataDe, false, isFeriado); + calendarData.setTime(dataDe); + calendarData.add(Calendar.DATE, 1); + dataDe = calendarData.getTime(); + } + log.info("commit bloco corridas"); + transactionManager.commit(status); + status = transactionManager.getTransaction(def); + } catch (Throwable ex) { + log.error("", ex); + log.error(" Erro ao gerar corrida = " + esquemaCorrida.getNumCorrida() + " esquemaCorrida = " + esquemaCorrida.getEsquemacorridaId()); + transactionManager.rollback(status); + status = transactionManager.getTransaction(def); + } } if (!status.isCompleted()) { log.info("commit bloco final"); - transactionManager.commit(status); }