List of usage examples for org.springframework.transaction TransactionStatus isCompleted
boolean isCompleted();
From source file:org.caratarse.auth.services.plugins.transactions.OpenTransactionPlugin.java
@Override public void process(Request request, Response response) { TransactionStatus status = transaction.get(); if (!status.isRollbackOnly()) { if (!status.isCompleted()) { transactionManager.commit(status); }// w w w .j av a2 s .c o m } else { if (!status.isCompleted()) { transactionManager.rollback(status); } } }
From source file:org.bitsofinfo.util.address.usps.ais.store.jpa.JPAStore.java
private Copyright processCopyright(Copyright copyright) throws StoreException { Copyright c = this.entityMgr.find(Copyright.class, copyright.getIdentifier()); if (c == null) { DefaultTransactionDefinition td = new DefaultTransactionDefinition(); td.setName("Process copyright"); td.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus txs = this.transactionManager.getTransaction(td); try {//from w w w .jav a 2 s .c o m this.saveRecord(copyright); this.transactionManager.commit(txs); } catch (DataIntegrityViolationException e) { if (!txs.isCompleted()) { this.transactionManager.rollback(txs); } // ignore this, it is fine, some other load beat us to it c = this.entityMgr.find(Copyright.class, copyright.getIdentifier()); } c = copyright; } return c; }
From source file:org.drools.container.spring.beans.persistence.DroolsSpringTransactionManager.java
/** * Borrowed from Seam/*w w w .ja v a 2s .c o m*/ */ public int getStatus() { if (ptm == null) { return TransactionManager.STATUS_NO_TRANSACTION; } logger.debug("Current TX name (According to TransactionSynchronizationManager) : " + TransactionSynchronizationManager.getCurrentTransactionName()); if (TransactionSynchronizationManager.isActualTransactionActive()) { TransactionStatus transaction = null; try { if (currentTransaction == null) { transaction = ptm.getTransaction(td); if (transaction.isNewTransaction()) { return TransactionManager.STATUS_COMMITTED; } } else { transaction = currentTransaction; } logger.debug("Current TX: " + transaction); // If SynchronizationManager thinks it has an active transaction but // our transaction is a new one // then we must be in the middle of committing if (transaction.isCompleted()) { if (transaction.isRollbackOnly()) { return TransactionManager.STATUS_ROLLEDBACK; } return TransactionManager.STATUS_COMMITTED; } else { // Using the commented-out code in means that if rollback with this manager, // I always have to catch and check the exception // because ROLLEDBACK can mean both "rolled back" and "rollback only". // if ( transaction.isRollbackOnly() ) { // return TransactionManager.STATUS_ROLLEDBACK; // } return TransactionManager.STATUS_ACTIVE; } } finally { if (currentTransaction == null) { ptm.commit(transaction); } } } return TransactionManager.STATUS_NO_TRANSACTION; }
From source file:com.eclecticlogic.pedal.impl.TransactionImpl.java
public <R> R _exec(Function<Context, R> runner) { TransactionStatus status = null; try {/*from w w w. j a v a 2 s .co m*/ status = getPlatformTransactionManager().getTransaction(getTransactionDefinition()); logger.trace("start: new = {}", status.isNewTransaction() ? "yes" : "no"); Context context = new ContextImpl(); R retval = runner.apply(context); if (status.isRollbackOnly()) { getPlatformTransactionManager().rollback(status); logger.trace("rollback"); } else { getPlatformTransactionManager().commit(status); logger.trace("commit"); } return retval; } catch (RuntimeException e) { if (status != null && status.isCompleted() == false) { getPlatformTransactionManager().rollback(status); logger.trace("rollback"); } throw e; } }
From source file:org.drools.container.spring.beans.persistence.HumanTaskSpringTransactionManager.java
/** * Borrowed from Seam//from w w w . j a v a2 s .c o m */ public int getStatus() { if (ptm == null) { return TransactionManager.STATUS_NO_TRANSACTION; } // logger.debug( "Current TX name (According to TransactionSynchronizationManager) : " + TransactionSynchronizationManager.getCurrentTransactionName() ); if (TransactionSynchronizationManager.isActualTransactionActive()) { TransactionStatus transaction = null; boolean commitNewTransaction = false; try { if (currentTransaction.size() == 0) { transaction = ptm.getTransaction(td); currentTransaction.push(transaction); commitNewTransaction = true; if (transaction.isNewTransaction()) { return TransactionManager.STATUS_COMMITTED; } } else { transaction = currentTransaction.peek(); } logger.debug("Current TX: " + transaction); // If SynchronizationManager thinks it has an active transaction but // our transaction is a new one // then we must be in the middle of committing if (transaction.isCompleted()) { if (transaction.isRollbackOnly()) { return TransactionManager.STATUS_ROLLEDBACK; } return TransactionManager.STATUS_COMMITTED; } else { if (transaction.isRollbackOnly()) { return 5; } return TransactionManager.STATUS_ACTIVE; } } finally { if (commitNewTransaction) { ptm.commit(transaction); } } } return TransactionManager.STATUS_NO_TRANSACTION; }
From source file:de.tudarmstadt.ukp.clarin.webanno.webapp.migration.FixCoreferenceFeatures.java
private void doMigration() { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setName("migrationRoot"); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = null;/*from www . ja va 2 s .c o m*/ try { status = txManager.getTransaction(def); Query q = entityManager.createQuery("UPDATE AnnotationFeature \n" + "SET type = :fixedType \n" + "WHERE type = :oldType \n" + "AND name in (:featureNames)"); // This condition cannot be applied: // "AND layer.type = :layerType" // q.setParameter("layerType", CHAIN_TYPE); // http://stackoverflow.com/questions/16506759/hql-is-generating-incomplete-cross-join-on-executeupdate // However, the risk that the migration upgrades the wrong featuers is still very low // even without this additional condition q.setParameter("featureNames", Arrays.asList(COREFERENCE_RELATION_FEATURE, COREFERENCE_TYPE_FEATURE)); q.setParameter("oldType", "de.tudarmstadt.ukp.dkpro.core.api.coref.type.Coreference"); q.setParameter("fixedType", CAS.TYPE_NAME_STRING); int changed = q.executeUpdate(); if (changed > 0) { log.info("DATABASE UPGRADE PERFORMED: [" + changed + "] coref chain features had their type fixed"); } txManager.commit(status); } finally { if (status != null && !status.isCompleted()) { txManager.rollback(status); } } }
From source file:com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.HibernateRepositoryCache.java
protected CachedItem getCachedItem(ExecutionContext context, FileResource resource, RepositoryCacheableItem cacheableItem) { if (log.isDebugEnabled()) { log.debug("Looking in repository cache \"" + cacheableItem.getCacheName() + "\" for resource \"" + resource.getURIString() + "\", version " + resource.getVersion() + "\", version date " + resource.getCreationDate()); }/*from w ww .j a v a 2s .c om*/ LockHandle lock = lock(resource, cacheableItem); //Because of bug #25373 we need to manually manipulate with transaction: //open it AFTER thread acquires lock //and commit BEFORE thread releases the lock. TransactionStatus transaction = null; try { transaction = transactionManager.getTransaction( new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW)); CachedItem cachedItem = getCachedItem(resource.getURIString(), cacheableItem, true); if (cachedItem == null || cachedItem.getVersion() < resource.getVersion() || cachedItem.getVersionDate() == null || cachedItem.getVersionDate().before(resource.getCreationDate())) { if (resource.isReference()) { cachedItem = saveRefence(context, resource, cachedItem, cacheableItem); } else { cachedItem = saveData(context, resource, cachedItem, cacheableItem); } } else if (resource.isReference()) { //load the reference to force updates FileResource ref = (FileResource) repository.getResource(context, resource.getReferenceURI()); CachedItem refItem = getCachedItem(context, ref, cacheableItem); if (!refItem.equals(cachedItem.getReference())) { updateReference(cachedItem, refItem); } } transactionManager.commit(transaction); return cachedItem; } finally { if (transaction != null && !transaction.isCompleted()) { try { transactionManager.rollback(transaction); } catch (Exception e) { // suppress exception throwing log.error(e.getMessage(), e); } } unlock(lock); } }
From source file:com.jaspersoft.jasperserver.api.metadata.user.service.impl.RoleManagerServiceImpl.java
public PaginatedOperationResult getUsersWithoutRole(final ExecutionContext context, final String roleName, final String userName, Set assignedUserNameSet, Set unassignedUserNameSet, int firstResult, int maxResults) { PaginatedOperationResult result;/*from w w w .j a va 2s .c o m*/ TransactionStatus transaction = null; try { // start transaction transaction = transactionManager.getTransaction( new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW)); userService.assignUsers(context, roleName, assignedUserNameSet); userService.unassignUsers(context, roleName, unassignedUserNameSet); getHibernateTemplate().flush(); result = PaginationHelper.paginatedGetOperationResult(firstResult, maxResults, new PaginationHelper.JasperService() { public List getResultList(int firstResult, int maxResults) { return userService.getUsersWithoutRole(context, roleName, userName, firstResult, maxResults); } public int getResultCount() { return userService.getUsersCountWithoutRole(context, roleName, userName); } }); } finally { if (transaction != null && !transaction.isCompleted()) { try { // rollback transactionManager.rollback(transaction); } catch (Exception e) { // suppress exception } } } return result; }
From source file:com.jaspersoft.jasperserver.api.metadata.user.service.impl.RoleManagerServiceImpl.java
public PaginatedOperationResult getUsersWithRole(final ExecutionContext context, final String roleName, final String userName, Set assignedUserNameSet, Set unassignedUserNameSet, int firstResult, int maxResults) { PaginatedOperationResult result;// ww w .ja va 2 s.c o m TransactionStatus transaction = null; try { // start transaction transaction = transactionManager.getTransaction( new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW)); userService.assignUsers(context, roleName, assignedUserNameSet); userService.unassignUsers(context, roleName, unassignedUserNameSet); getHibernateTemplate().flush(); result = PaginationHelper.paginatedGetOperationResult(firstResult, maxResults, new PaginationHelper.JasperService() { public List getResultList(int firstResult, int maxResults) { return userService.getUsersWithRole(context, roleName, userName, firstResult, maxResults); } public int getResultCount() { return userService.getUsersCountWithRole(context, roleName, userName); } }); } finally { if (transaction != null && !transaction.isCompleted()) { try { // rollback transactionManager.rollback(transaction); } catch (Exception e) { // suppress exception } } } return result; }
From source file:hoot.services.controllers.job.ProcessJobRunnable.java
@Override public void run() { ApplicationContext appContext = ApplicationContextUtils.getApplicationContext(); PlatformTransactionManager txManager = appContext.getBean("transactionManager", PlatformTransactionManager.class); TransactionStatus transactionStatus = null; try {/* ww w .ja v a 2s .c o m*/ transactionStatus = txManager.getTransaction(null); processCommand(); txManager.commit(transactionStatus); } catch (Exception e) { if ((transactionStatus != null) && !transactionStatus.isCompleted()) { txManager.rollback(transactionStatus); } logger.error("Error executing job with ID = {}", jobId, e); } }