code: public void conditionViolated() {
          try {
              if (this.xaConnection != null) {
                  XATransactionalBranch<C> transactionalBranch = this.xaConnection.toGlobalTransactionBranch();
                  if (transactionalBranch != null) {
                      transactionalBranch.setRollbackOnly(true);
                  }
              }
              if (LOG.isInfoEnabled()) {
                  String logString = "PhynixxXAResource.expired :: XAResource " + this.getId()
                          + " is expired (time out occurred) and all associated TX are rollbacked ";
                  LOG.info(new ConditionViolatedLog(this.timeoutCondition, logString).toString());
              }
  
          } finally {
              // no monitoring anymore
              setTimeOutActive(false);
          }
  
      }
docs: called when the current XAresource is expired (time out occurred) The
  current Impl. does nothing but marked the associated TX as rollback only
  The underlying core connection are not treated ....
  
  There are two different situation that have to be handled If the
  connection expires because of a long running method call the connection
  isn't treated and the XAResource is marked as rollback only. The rollback
  is done by the Transactionmanager. If the TX expires because the
  Transactionmanagers doesn't answer, the underlying connection is
  rolledback and the XAResource is marked as rollback only (N.B. rolling
  back the connection marks the XAResource as heuristically rolled back)