Program: 82152
Project: 82152
Buggy source:
/** 
 * This method will dispatch commands from the command queue. It will dispatch commands until one of the following conditions is <code>true</code>: <ul> <li>It consumed its dispatching time slice  {@value #DEFAULT_TIME_SLICE_MILLIS}</li> <li>It encounters a <code>null</code> in the command queue</li> <li>All commands which were present at the start of the dispatching have been removed from the command queue</li> <li>The command that it was processing was canceled due to a false cancellation -- in this case we exit without updating any state</li> </ul>
 * @param startTimeMillis the time when this method started
 */
protected void doExecuteCommands(double startTimeMillis){
  assert(!isExecutionTimerPending());
  boolean wasCanceled=false;
  try {
    setExecuting(true);
    iterator.setEnd(commands.size());
    cancellationTimer.schedule(DEFAULT_CANCELLATION_TIMEOUT_MILLIS);
    while (iterator.hasNext()) {
      Object element=iterator.next();
      boolean removeCommand=true;
      try {
        if (element == null) {
          return;
        }
        if (element instanceof Command) {
          Command command=(Command)element;
          command.execute();
        }
 else         if (element instanceof IncrementalCommand) {
          IncrementalCommand incrementalCommand=(IncrementalCommand)element;
          removeCommand=!incrementalCommand.execute();
        }
      }
  finally {
        wasCanceled=iterator.wasRemoved();
        if (wasCanceled) {
          return;
        }
        if (removeCommand) {
          iterator.remove();
        }
      }
      if (hasTimeSliceExpired(Duration.currentTimeMillis(),startTimeMillis)) {
        return;
      }
    }
  }
  finally {
    if (!wasCanceled) {
      cancellationTimer.cancel();
      setExecuting(false);
      maybeStartExecutionTimer();
    }
  }
}

Fixed version (ground truth):
/** 
 * This method will dispatch commands from the command queue. It will dispatch commands until one of the following conditions is <code>true</code>: <ul> <li>It consumed its dispatching time slice  {@value #DEFAULT_TIME_SLICE_MILLIS}</li> <li>It encounters a <code>null</code> in the command queue</li> <li>All commands which were present at the start of the dispatching have been removed from the command queue</li> <li>The command that it was processing was canceled due to a false cancellation -- in this case we exit without updating any state</li> </ul>
 * @param startTimeMillis the time when this method started
 */
protected void doExecuteCommands(double startTimeMillis){
  assert(!isExecutionTimerPending());
  boolean wasCanceled=false;
  try {
    setExecuting(true);
    iterator.setEnd(commands.size());
    cancellationTimer.schedule(DEFAULT_CANCELLATION_TIMEOUT_MILLIS);
    while (iterator.hasNext()) {
      Object element=iterator.next();
      boolean removeCommand=true;
      try {
        if (element == null) {
          return;
        }
        if (element instanceof Command) {
          Command command=(Command)element;
          command.execute();
        }
 else         if (element instanceof IncrementalCommand) {
          IncrementalCommand incrementalCommand=(IncrementalCommand)element;
          removeCommand=!incrementalCommand.execute();
        }
      }
  finally {
        wasCanceled=iterator.wasRemoved();
        if (!wasCanceled) {
          if (removeCommand) {
            iterator.remove();
          }
        }
      }
      if (hasTimeSliceExpired(Duration.currentTimeMillis(),startTimeMillis)) {
        return;
      }
    }
  }
  finally {
    if (!wasCanceled) {
      cancellationTimer.cancel();
      setExecuting(false);
      maybeStartExecutionTimer();
    }
  }
}