code: @Override
     void haltCatchFire()
     {
        if (isEnlisted())
        {
           if (transactionSynchronization != null)
              transactionSynchronization.cancel();
  
           String txId = "";
           TransactionalConnectionManager txCM = (TransactionalConnectionManager)cm;
           TransactionIntegration ti = txCM.getTransactionIntegration();
  
           if (ti != null)
           {
              Transaction tx = null;
              try
              {
                 tx = ti.getTransactionManager().getTransaction();
  
                 if (Tracer.isEnabled() && tx != null)
                    txId = tx.toString();
                 
                 if (TxUtils.isUncommitted(tx))
                 {
                    log.tracef("connectionErrorOccurred: delistResource(%s, TMFAIL)", xaResource);
  
                    boolean failResult = tx.delistResource(xaResource, XAResource.TMFAIL);
                    
                    if (failResult)
                    {
                       log.tracef("connectionErrorOccurred: delist-fail: %s", this);
                    }
                    else
                    {
                       log.debugf("connectionErrorOccurred: delist-fail failed: %s", this);
                    }
                 }
              }
              catch (Exception e)
              {
                 log.debugf(e, "connectionErrorOccurred: Exception during delistResource=%s", e.getMessage());
              }
              finally
              {
                 if (TxUtils.isUncommitted(tx))
                 {
                    try
                    {
                       tx.setRollbackOnly();
                    }
                    catch (Exception e)
                    {
                       // Just a hint
                    }
                 }
              }
           }
           
           if (Tracer.isEnabled())
           {
              Tracer.delistConnectionListener(cm.getPool().getConfiguration().getId(),
                                              getManagedConnectionPool(),
                                              this, txId, false, true, false);
           }
        }
  
        // Prepare to explode
        enlisted = false;
        transactionSynchronization = null;
     }
docs: {@inheritDoc}