Skip to content

Commit

Permalink
HHH-12391 - with IronJacamar an EntityTransaction.rollback() with a n…
Browse files Browse the repository at this point in the history
…on active Transaction that was marked for rollback only causes a failure
  • Loading branch information
dreab8 committed Mar 26, 2018
1 parent fdadd97 commit 593d93d
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 14 deletions.
Expand Up @@ -245,10 +245,15 @@ public void commit() {

@Override
public void rollback() {
if ( rollbackOnly || getStatus() == TransactionStatus.ACTIVE ) {
try {
TransactionStatus status = jdbcResourceTransaction.getStatus();
if ( ( rollbackOnly && status != TransactionStatus.NOT_ACTIVE ) || status == TransactionStatus.ACTIVE ) {
jdbcResourceTransaction.rollback();
JdbcResourceLocalTransactionCoordinatorImpl.this.afterCompletionCallback( false );
}
}
finally {
rollbackOnly = false;
jdbcResourceTransaction.rollback();
JdbcResourceLocalTransactionCoordinatorImpl.this.afterCompletionCallback( false );
}

// no-op otherwise.
Expand Down
Expand Up @@ -17,17 +17,17 @@ public interface JdbcResourceTransaction {
/**
* Begin the resource transaction
*/
public void begin();
void begin();

/**
* Commit the resource transaction
*/
public void commit();
void commit();

/**
* Rollback the resource transaction
*/
public void rollback();
void rollback();

public TransactionStatus getStatus();
TransactionStatus getStatus();
}
Expand Up @@ -19,5 +19,5 @@ public interface JdbcResourceTransactionAccess {
*
* @return The resource-local transaction
*/
public JdbcResourceTransaction getResourceLocalTransaction();
JdbcResourceTransaction getResourceLocalTransaction();
}
Expand Up @@ -21,21 +21,21 @@ public interface JtaTransactionAdapter {
/**
* Call begin on the underlying transaction object
*/
public void begin();
void begin();

/**
* Call commit on the underlying transaction object
*/
public void commit();
void commit();

/**
* Call rollback on the underlying transaction object
*/
public void rollback();
void rollback();

public TransactionStatus getStatus();
TransactionStatus getStatus();

public void markRollbackOnly();
void markRollbackOnly();

public void setTimeOut(int seconds);
void setTimeOut(int seconds);
}

0 comments on commit 593d93d

Please sign in to comment.