Example usage for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus

List of usage examples for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus

Introduction

In this page you can find the example usage for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus.

Prototype

public static TransactionStatus currentTransactionStatus() throws NoTransactionException 

Source Link

Document

Return the transaction status of the current method invocation.

Usage

From source file:org.nuclos.server.masterdata.ejb3.MetaDataFacadeBean.java

@Override
public void tryRemoveProcess(EntityObjectVO process) throws NuclosBusinessException {
    try {// w ww .ja  v a  2 s. co  m
        NucletDalProvider.getInstance().getEntityObjectProcessor(NuclosEntity.PROCESS).delete(process.getId());
    } catch (DbException e) {
        throw new NuclosBusinessException("tryRemoveProcess failed", e);
    }
    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}

From source file:org.springframework.cloud.gcp.data.spanner.core.SpannerTemplate.java

private TransactionContext getTransactionContext() {
    return TransactionSynchronizationManager.isActualTransactionActive()
            ? ((SpannerTransactionManager.Tx) ((DefaultTransactionStatus) TransactionAspectSupport
                    .currentTransactionStatus()).getTransaction()).getTransactionContext()
            : null;//w  w  w. ja v a 2s.c o  m
}

From source file:org.yes.cart.bulkexport.image.impl.ImagesBulkExportServiceImpl.java

/**
 * {@inheritDoc}//w  w  w  .  j av  a 2s  .c  om
 */
public BulkExportResult doExport(final JobContext context) {

    final JobStatusListener statusListener = context.getListener();

    final CsvExportDescriptor imageExportDescriptor = context.getAttribute(JobContextKeys.EXPORT_DESCRIPTOR);
    final String imageExportDescriptorName = context.getAttribute(JobContextKeys.EXPORT_DESCRIPTOR_NAME);
    final String imageExportOverrideFile = context.getAttribute(JobContextKeys.EXPORT_FILE);

    try {

        String fileToExport = imageExportDescriptor.getExportFileDescriptor().getFileName();
        if (StringUtils.isNotBlank(imageExportOverrideFile)) {
            fileToExport = imageExportOverrideFile;
        } else {
            if (fileToExport.contains(TIMESTAMP_PLACEHOLDER)) {
                final SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
                fileToExport = fileToExport.replace(TIMESTAMP_PLACEHOLDER, format.format(new Date()));
                if (new File(fileToExport).exists()) {
                    final String msgErr = MessageFormat.format("export file already exists: {0}", fileToExport);
                    statusListener.notifyError(msgErr);
                    return BulkExportResult.ERROR;
                }
            }
        }

        final String msgInfo = MessageFormat.format("Export descriptor {0} specifies file {1} to export",
                imageExportDescriptorName, fileToExport);
        statusListener.notifyMessage(msgInfo);
        if (imageExportDescriptor.getSelectSql() == null) {
            final String msgErr = "export can not be started, because select-sql is empty";
            statusListener.notifyError(msgErr);
            return ExportService.BulkExportResult.ERROR;
        }
        doExport(statusListener, imageExportDescriptorName, imageExportDescriptor, fileToExport);

    } catch (Exception e) {

        /**
         * Programmatically rollback for any error during import - ALL or NOTHING.
         * But we do not throw exception since this is in a separate thread so not point
         * Need to finish gracefully with error status
         */
        if (!TransactionAspectSupport.currentTransactionStatus().isRollbackOnly()) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }

        final String msgError = MessageFormat.format("unexpected error {0}", e.getMessage());
        statusListener.notifyError(msgError, e);
        return ExportService.BulkExportResult.ERROR;
    }
    return ExportService.BulkExportResult.OK;
}

From source file:org.yes.cart.bulkimport.csv.impl.CsvBulkImportServiceImpl.java

/**
 * Perform bulk import.//from  w  ww.  ja v a2 s.co m
 * Service has s set of import descriptors, eac of them may perform the import
 * on files. Files selected by regular expression . If <code>fileName</code>
 * not empty, than only one may be imported instead of set, that satisfy
 * regular expressions.
 *
 * @param context job context
 * @return result of the import
 */
public BulkImportResult doImport(final JobContext context) {

    final Logger log = ShopCodeContext.getLog(this);
    final JobStatusListener statusListener = context.getListener();
    final Set<String> importedFiles = context.getAttribute(JobContextKeys.IMPORT_FILE_SET);
    final String fileName = context.getAttribute(JobContextKeys.IMPORT_FILE);
    final CsvImportDescriptor csvImportDescriptor = context.getAttribute(JobContextKeys.IMPORT_DESCRIPTOR);
    final String csvImportDescriptorName = context.getAttribute(JobContextKeys.IMPORT_DESCRIPTOR_NAME);

    try {
        final Map<String, Object> entityCache = new HashMap<String, Object>();

        final File[] filesToImport = getFilesToImport(csvImportDescriptor, fileName);
        if (filesToImport == null) {
            final String msgWarn = MessageFormat.format("no files with mask {0} to import",
                    csvImportDescriptor.getImportFileDescriptor().getFileNameMask());
            statusListener.notifyWarning(msgWarn);
            log.warn(msgWarn);
        } else {
            final String msgInfo = MessageFormat.format(
                    "Import descriptor {0} has {1} file(s) with mask {2} to import", csvImportDescriptorName,
                    filesToImport.length, csvImportDescriptor.getImportFileDescriptor().getFileNameMask());
            statusListener.notifyMessage(msgInfo);
            log.info(msgInfo);
            if (csvImportDescriptor.getSelectSql() == null) {
                final String msgErr = "import can not be started, because select-sql is empty";
                log.error(msgErr);
                statusListener.notifyError(msgErr);
                return BulkImportResult.ERROR;
            }
            doImport(statusListener, filesToImport, csvImportDescriptorName, csvImportDescriptor, importedFiles,
                    entityCache);
        }
    } catch (Exception e) {

        /**
         * Programmatically rollback for any error during import - ALL or NOTHING.
         * But we do not throw exception since this is in a separate thread so not point
         * Need to finish gracefully with error status
         */
        if (!TransactionAspectSupport.currentTransactionStatus().isRollbackOnly()) {
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }

        final String msgError = MessageFormat.format("unexpected error {0}", e.getMessage());
        log.error(msgError, e);
        statusListener.notifyError(msgError);
        return BulkImportResult.ERROR;
    }
    return BulkImportResult.OK;
}