Program: 155493
Project: 155493
Buggy source:
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException {
  if (status == Status.STATUS_NO_TRANSACTION)   throw new IllegalStateException("String_Node_Str");
  if (isDone())   throw new IllegalStateException("String_Node_Str");
  fireBeforeCompletionEvent();
  TransactionManagerServices.getTaskScheduler().cancelTransactionTimeout(this);
  if (timedOut()) {
    if (log.isDebugEnabled())     log.debug("String_Node_Str");
    rollback();
    throw new BitronixRollbackException("String_Node_Str");
  }
  if (status == Status.STATUS_MARKED_ROLLBACK) {
    if (log.isDebugEnabled())     log.debug("String_Node_Str");
    rollback();
    throw new BitronixRollbackException("String_Node_Str");
  }
  try {
    try {
      delistUnclosedResources(XAResource.TMSUCCESS);
    }
 catch (    BitronixRollbackException ex) {
      rollbackPrepareFailure(ex);
      throw new BitronixRollbackException("String_Node_Str",ex);
    }
    List interestedResources=new ArrayList();
    try {
      if (log.isDebugEnabled())       log.debug("String_Node_Str" + resourceManager.size() + "String_Node_Str");
      preparer.prepare(this,interestedResources);
    }
 catch (    RollbackException ex) {
      if (log.isDebugEnabled())       log.debug("String_Node_Str");
      rollbackPrepareFailure(ex);
      throw new BitronixRollbackException("String_Node_Str" + this,ex);
    }
    if (log.isDebugEnabled())     log.debug(interestedResources.size() + "String_Node_Str");
    committer.commit(this,interestedResources);
    if (log.isDebugEnabled())     log.debug("String_Node_Str" + this);
  }
  finally {
    fireAfterCompletionEvent();
  }
}

Fixed version (ground truth):
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException {
  if (status == Status.STATUS_NO_TRANSACTION)   throw new IllegalStateException("String_Node_Str");
  if (isDone())   throw new IllegalStateException("String_Node_Str");
  TransactionManagerServices.getTaskScheduler().cancelTransactionTimeout(this);
  if (timedOut()) {
    if (log.isDebugEnabled())     log.debug("String_Node_Str");
    rollback();
    throw new BitronixRollbackException("String_Node_Str");
  }
  if (status == Status.STATUS_MARKED_ROLLBACK) {
    if (log.isDebugEnabled())     log.debug("String_Node_Str");
    rollback();
    throw new BitronixRollbackException("String_Node_Str");
  }
  fireBeforeCompletionEvent();
  try {
    try {
      delistUnclosedResources(XAResource.TMSUCCESS);
    }
 catch (    BitronixRollbackException ex) {
      rollbackPrepareFailure(ex);
      throw new BitronixRollbackException("String_Node_Str",ex);
    }
    List interestedResources=new ArrayList();
    try {
      if (log.isDebugEnabled())       log.debug("String_Node_Str" + resourceManager.size() + "String_Node_Str");
      preparer.prepare(this,interestedResources);
    }
 catch (    RollbackException ex) {
      if (log.isDebugEnabled())       log.debug("String_Node_Str");
      rollbackPrepareFailure(ex);
      throw new BitronixRollbackException("String_Node_Str" + this,ex);
    }
    if (log.isDebugEnabled())     log.debug(interestedResources.size() + "String_Node_Str");
    committer.commit(this,interestedResources);
    if (log.isDebugEnabled())     log.debug("String_Node_Str" + this);
  }
  finally {
    fireAfterCompletionEvent();
  }
}