List of usage examples for org.springframework.transaction.interceptor TransactionAspectSupport currentTransactionStatus
public static TransactionStatus currentTransactionStatus() throws NoTransactionException
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; }