Program: 73246
Project: 73246
Buggy source:
/** 
 * Execute actions on the last chosen transition. Change state to the destination state of the last chosen transition.
 * @return True, unless stop() has been called, in which case, false.
 * @exception IllegalActionException If any action throws it.
 */
public boolean postfire() throws IllegalActionException {
  Director director=getDirector();
  boolean inModalModel=false;
  if (director instanceof FSMDirector) {
    inModalModel=true;
  }
  Time environmentTime=_getEnvironmentTime();
  for (  Actor stateRefinement : _stateRefinementsToPostfire) {
    if (_debugging) {
      _debug("String_Node_Str",stateRefinement.getName());
    }
    _setTimeForRefinement(stateRefinement);
    if (!stateRefinement.postfire()) {
      _disabledRefinements.add(stateRefinement);
    }
    if (inModalModel) {
      director.setModelTime(environmentTime);
    }
  }
  Actor[] refinements=_currentState.getRefinement();
  if (refinements != null) {
    for (    Actor stateRefinement : refinements) {
      if (_lastChosenTransitions.size() != 0 && stateRefinement instanceof Suspendable) {
        ((Suspendable)stateRefinement).suspend(environmentTime);
      }
    }
  }
  if (_lastChosenTransitions.size() != 0) {
    State destinationState=_destinationState();
    if (destinationState != null) {
      TypedActor[] destinationRefinements=destinationState.getRefinement();
      if (destinationRefinements != null) {
        for (        TypedActor destinationRefinement : destinationRefinements) {
          if (destinationRefinement instanceof Suspendable) {
            ((Suspendable)destinationRefinement).resume(environmentTime);
          }
        }
      }
    }
  }
  _transitionsPreviouslyChosenInIteration.clear();
  _commitLastChosenTransition();
  for (  Actor transitionRefinement : _transitionRefinementsToPostfire) {
    if (_debugging) {
      _debug("String_Node_Str",transitionRefinement.getName());
    }
    if (!transitionRefinement.postfire()) {
      _disabledRefinements.add(transitionRefinement);
    }
  }
  return !_reachedFinalState && !_stopRequested;
}

Fixed version (ground truth):
/** 
 * Execute actions on the last chosen transition. Change state to the destination state of the last chosen transition.
 * @return True, unless stop() has been called, in which case, false.
 * @exception IllegalActionException If any action throws it.
 */
public boolean postfire() throws IllegalActionException {
  if (_debugging) {
    _debug("String_Node_Str");
  }
  Director director=getDirector();
  boolean inModalModel=false;
  if (director instanceof FSMDirector) {
    inModalModel=true;
  }
  Time environmentTime=_getEnvironmentTime();
  for (  Actor stateRefinement : _stateRefinementsToPostfire) {
    if (_debugging) {
      _debug("String_Node_Str",stateRefinement.getName());
    }
    _setTimeForRefinement(stateRefinement);
    if (!stateRefinement.postfire()) {
      _disabledRefinements.add(stateRefinement);
    }
    if (inModalModel) {
      director.setModelTime(environmentTime);
    }
  }
  Actor[] refinements=_currentState.getRefinement();
  if (refinements != null) {
    for (    Actor stateRefinement : refinements) {
      if (_lastChosenTransitions.size() != 0 && stateRefinement instanceof Suspendable) {
        ((Suspendable)stateRefinement).suspend(environmentTime);
      }
    }
  }
  if (_lastChosenTransitions.size() != 0) {
    State destinationState=_destinationState();
    if (destinationState != null) {
      TypedActor[] destinationRefinements=destinationState.getRefinement();
      if (destinationRefinements != null) {
        for (        TypedActor destinationRefinement : destinationRefinements) {
          if (destinationRefinement instanceof Suspendable) {
            ((Suspendable)destinationRefinement).resume(environmentTime);
          }
        }
      }
    }
  }
  _transitionsPreviouslyChosenInIteration.clear();
  _commitLastChosenTransition();
  for (  Actor transitionRefinement : _transitionRefinementsToPostfire) {
    if (_debugging) {
      _debug("String_Node_Str",transitionRefinement.getName());
    }
    if (!transitionRefinement.postfire()) {
      _disabledRefinements.add(transitionRefinement);
    }
  }
  return !_reachedFinalState && !_stopRequested;
}