List of usage examples for org.springframework.transaction TransactionException getMessage
@Override
@Nullable
public String getMessage()
From source file:org.ohdsi.webapi.feasibility.PerformFeasibilityTasklet.java
@Override public RepeatStatus execute(final StepContribution contribution, final ChunkContext chunkContext) throws Exception { Date startTime = Calendar.getInstance().getTime(); Map<String, Object> jobParams = chunkContext.getStepContext().getJobParameters(); Integer studyId = Integer.valueOf(jobParams.get("study_id").toString()); Integer sourceId = Integer.valueOf(jobParams.get("source_id").toString()); boolean isValid = false; DefaultTransactionDefinition requresNewTx = new DefaultTransactionDefinition(); requresNewTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus initStatus = this.transactionTemplate.getTransactionManager() .getTransaction(requresNewTx); FeasibilityStudy study = this.feasibilityStudyRepository.findOne(studyId); CohortDefinition resultDef = study.getResultRule(); if (resultDef != null) { CohortGenerationInfo resultInfo = findCohortGenerationInfoBySourceId(resultDef.getGenerationInfoList(), sourceId);/*from w w w. j a v a2 s. co m*/ resultInfo.setIsValid(false).setStatus(GenerationStatus.RUNNING).setStartTime(startTime) .setExecutionDuration(null); } StudyGenerationInfo studyInfo = findStudyGenerationInfoBySourceId(study.getStudyGenerationInfoList(), sourceId); studyInfo.setIsValid(false); studyInfo.setStartTime(startTime); studyInfo.setStatus(GenerationStatus.RUNNING); this.feasibilityStudyRepository.save(study); this.transactionTemplate.getTransactionManager().commit(initStatus); try { final int[] ret = this.transactionTemplate.execute(new TransactionCallback<int[]>() { @Override public int[] doInTransaction(final TransactionStatus status) { return doTask(chunkContext); } }); log.debug("Update count: " + ret.length); isValid = true; } catch (final TransactionException e) { isValid = false; log.error(e.getMessage(), e); throw e;//FAIL job status } finally { TransactionStatus completeStatus = this.transactionTemplate.getTransactionManager() .getTransaction(requresNewTx); Date endTime = Calendar.getInstance().getTime(); study = this.feasibilityStudyRepository.findOne(studyId); resultDef = study.getResultRule(); if (resultDef != null) { CohortGenerationInfo resultInfo = findCohortGenerationInfoBySourceId( resultDef.getGenerationInfoList(), sourceId); resultInfo = findCohortGenerationInfoBySourceId(resultDef.getGenerationInfoList(), sourceId); resultInfo.setIsValid(isValid); resultInfo.setExecutionDuration(new Integer((int) (endTime.getTime() - startTime.getTime()))); resultInfo.setStatus(GenerationStatus.COMPLETE); } studyInfo = findStudyGenerationInfoBySourceId(study.getStudyGenerationInfoList(), sourceId); studyInfo.setIsValid(isValid); studyInfo.setExecutionDuration(new Integer((int) (endTime.getTime() - startTime.getTime()))); studyInfo.setStatus(GenerationStatus.COMPLETE); this.feasibilityStudyRepository.save(study); this.transactionTemplate.getTransactionManager().commit(completeStatus); } return RepeatStatus.FINISHED; }
From source file:jp.terasoluna.fw.batch.util.BatchUtilTest.java
/** * ???/*from ww w .jav a 2 s. co m*/ * * <pre> * ?? * {@code TLogger}?{@code commons.logging.Log}??{@code BatchUtil}????? * ? * ??{@code error()}?????????? * </pre> */ public void testSwitchLogger02() { // TransactionDefinition def = BatchUtil.getTransactionDefinition(); Map<String, PlatformTransactionManager> tranMap = new HashMap<String, PlatformTransactionManager>(); PlatformTransactionManager tran = new PlatformTransactionManagerStub(); Log mockCommonsLog = LogFactory.getLog(BatchUtilTest.class); TLogger mockLog = (TLogger) spy(log); mockCommonsLog = spy(mockCommonsLog); tran = spy(tran); tranMap.put("tran", tran); when(tran.getTransaction(def)).thenThrow(new TransactionSystemException("test exception")); // try { BatchUtil.startTransactions(def, tranMap, mockLog); fail(); } catch (TransactionException e) { assertTrue(e instanceof TransactionException); } try { BatchUtil.startTransactions(def, tranMap, mockCommonsLog); fail(); } catch (TransactionException e) { assertEquals("test exception", e.getMessage()); } // ? verify(mockCommonsLog).error(any()); verify(mockLog).error(any(String.class), any(), any(String.class)); }
From source file:org.ohdsi.webapi.cohortdefinition.GenerateCohortTasklet.java
@Override public RepeatStatus execute(final StepContribution contribution, final ChunkContext chunkContext) throws Exception { Date startTime = Calendar.getInstance().getTime(); DefaultTransactionDefinition initTx = new DefaultTransactionDefinition(); initTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus initStatus = this.transactionTemplate.getTransactionManager().getTransaction(initTx); CohortDefinition df = this.cohortDefinitionRepository.findOne(this.task.getCohortDefinition().getId()); CohortGenerationInfo info = df.getGenerationInfo(); if (info == null) { info = new CohortGenerationInfo().setCohortDefinition(df); df.setGenerationInfo(info);//from ww w . j a va 2 s. c o m } info.setIsValid(false); info.setStartTime(startTime); info.setStatus(GenerationStatus.RUNNING); df = this.cohortDefinitionRepository.save(df); this.transactionTemplate.getTransactionManager().commit(initStatus); info = df.getGenerationInfo(); try { final int[] ret = this.transactionTemplate.execute(new TransactionCallback<int[]>() { @Override public int[] doInTransaction(final TransactionStatus status) { return doTask(); } }); log.debug("Update count: " + ret.length); info.setIsValid(true); } catch (final TransactionException e) { info.setIsValid(false); log.error(e.getMessage(), e); throw e;//FAIL job status } finally { DefaultTransactionDefinition completeTx = new DefaultTransactionDefinition(); completeTx.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus completeStatus = this.transactionTemplate.getTransactionManager() .getTransaction(completeTx); Date endTime = Calendar.getInstance().getTime(); info.setExecutionDuration(new Integer((int) (endTime.getTime() - startTime.getTime()))); info.setStatus(GenerationStatus.COMPLETE); this.cohortDefinitionRepository.save(df); this.transactionTemplate.getTransactionManager().commit(completeStatus); } return RepeatStatus.FINISHED; }