Uploaded image for project: 'Arquillian'
  1. Arquillian
  2. ARQ-723

TransactionalWrapper.afterTest() ignores SessionContext.setRollbackOnly()

    XMLWordPrintable

Details

    Description

      If a method is being tested that invokes SessionContext.setRollbackOnly(), then the commit mode doesn't work correctly, because doing a commit() after setRollbackOnly() will fail. Therefore, the method TransactionalWrapper.afterTest() should be implemented as follows:
      final TransactionMode mode = metadataProvider.get().getTransactionalMode();
      final UserTransaction trans = obtainTransaction();
      if (TransactionMode.COMMIT.equals(mode)) {
      if (Status.STATUS_MARKED_ROLLBACK.equals(trans.getStatus()))

      { trans.rollback(); }

      else

      { trans.commit(); }

      }
      else

      { trans.rollback(); }

      Attachments

        Activity

          People

            bartosz-1 Bartosz Majsak
            juergen.zimmermann Juergen Zimmermann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: