Example usage for org.springframework.transaction TransactionException getMessage

List of usage examples for org.springframework.transaction TransactionException getMessage

Introduction

In this page you can find the example usage for org.springframework.transaction TransactionException getMessage.

Prototype

@Override
@Nullable
public String getMessage() 

Source Link

Document

Return the detail message, including the message from the nested exception if there is one.

Usage

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;
}