@Override public boolean getRollbackOnly() { return transaction.getRollbackOnly(); }
@Override public boolean isRollbackOnly() { EntityTransaction tx = getEntityManagerHolder().getEntityManager().getTransaction(); return tx.getRollbackOnly(); }
private void ensureNotInRollbackOnlyTransation() { EntityTransaction tx = em.getTransaction(); U.must(!tx.isActive() || !tx.getRollbackOnly(), "Cannot perform writes inside read-only transaction!"); }
@Override public boolean isRollbackOnly() { EntityTransaction tx = getEntityManagerHolder().getEntityManager().getTransaction(); return tx.getRollbackOnly(); }
txn.begin(); function.accept( entityManager ); if ( !txn.getRollbackOnly() ) { txn.commit();
public <E> E transactional(Callable<E> action, boolean readOnly) { ensureNotInRollbackOnlyTransation(); EntityTransaction tx = em.getTransaction(); U.notNull(tx, "transaction"); boolean newTx = !tx.isActive(); if (newTx) { tx.begin(); } if (readOnly) { tx.setRollbackOnly(); } try { E result = action.call(); if (newTx) { if (tx.getRollbackOnly()) { tx.rollback(); } else { tx.commit(); } } return result; } catch (Throwable e) { if (newTx) { if (tx.isActive()) { tx.rollback(); } } throw U.rte("Transaction execution error, rolled back!", e); } }
@Test public void testTransactionCommitWithRollbackException() { given(manager.getTransaction()).willReturn(tx); given(tx.getRollbackOnly()).willReturn(true); willThrow(new RollbackException()).given(tx).commit(); final List<String> l = new ArrayList<>(); l.add("test"); assertTrue(!TransactionSynchronizationManager.hasResource(factory)); assertTrue(!TransactionSynchronizationManager.isSynchronizationActive()); try { Object result = tt.execute(new TransactionCallback() { @Override public Object doInTransaction(TransactionStatus status) { assertTrue(TransactionSynchronizationManager.hasResource(factory)); EntityManagerFactoryUtils.getTransactionalEntityManager(factory).flush(); return l; } }); assertSame(l, result); } catch (TransactionSystemException tse) { // expected assertTrue(tse.getCause() instanceof RollbackException); } assertTrue(!TransactionSynchronizationManager.hasResource(factory)); assertTrue(!TransactionSynchronizationManager.isSynchronizationActive()); verify(manager).flush(); verify(manager).close(); }
given(manager.getTransaction()).willReturn(tx); given(tx.isActive()).willReturn(true); given(tx.getRollbackOnly()).willReturn(true); willThrow(new RollbackException()).given(tx).commit();
@Override public boolean getRollbackOnly() { return em.getTransaction().getRollbackOnly(); }
@Override public boolean getRollbackOnly() { return em.getTransaction().getRollbackOnly(); }
@Override public boolean getRollbackOnly() { return em.getTransaction().getRollbackOnly(); }
private void commitTransaction(EntityTransaction tx) { if (tx.getRollbackOnly()) { tx.rollback(); } else { tx.commit(); } }
protected final void completeTransaction( @Nonnull final EntityTransaction transaction ) { if ( transaction.getRollbackOnly() ) { transaction.rollback(); } else { transaction.commit(); } }
@Override public void ended(Coordination coordination) throws Exception { if (em.getTransaction().getRollbackOnly()) { try { em.getTransaction().rollback(); } catch (Exception e) { LOG.debug("Exception on transaction rollback", e); } } else { em.getTransaction().commit(); } } }
public boolean isRollbackOnly() { if(!started.get()) throw new RuntimeException("transaction not started"); return emp.get().getTransaction().getRollbackOnly(); }
public void closeTxn(boolean rollback) { if (isTxnOpen()) { if (rollback || readOnly || entityManager.getTransaction().getRollbackOnly()) { entityManager.getTransaction().rollback(); } else { entityManager.getTransaction().commit(); } } }
protected void finishTransaction(@Observes @TestEvent(EventType.FINISHING) ExtensionContext description) { if (transaction.isActive()) { if (transaction.getRollbackOnly()) { transaction.rollback(); } else { transaction.commit(); } } }
@Override public boolean isRollbackOnly() { EntityTransaction tx = getEntityManagerHolder().getEntityManager().getTransaction(); return tx.getRollbackOnly(); }
public int getStatus() throws SystemException { if (getDelegate().isActive()) { if (getDelegate().getRollbackOnly()) { return Status.STATUS_MARKED_ROLLBACK; } return Status.STATUS_ACTIVE; } else { return Status.STATUS_NO_TRANSACTION; } }
public int getStatus() throws SystemException { if ( isEntityManagerSet() && getDelegate().getRollbackOnly() ) { return Status.STATUS_MARKED_ROLLBACK; } else if ( isEntityManagerSet() && getDelegate().isActive() ) { return Status.STATUS_ACTIVE; } else { return Status.STATUS_NO_TRANSACTION; } }