Program: 73452
Project: 73452
Buggy source:
/** 
 * Convert the platform to an oracle time based on the platform clock that is used. Call fireAt() of the executive director, which is in charge of keeping track of the simulated physical time.
 * @param wakeUpTime The time to wake up.
 * @exception IllegalActionException If cannot call fireAt of enclosingdirector, or if the oracle time is in the past, or cannot get the oracle time.
 */
protected void _fireAtPlatformTime(Time platformTime,int clockId) throws IllegalActionException {
  Actor container=(Actor)getContainer();
  Director executiveDirector=((Actor)container).getExecutiveDirector();
  Time fireAtTime=_getOraclePhysicalTimeForPlatformPhysicalTime(platformTime,clockId);
  if (fireAtTime == null) {
    throw new IllegalActionException(this,"String_Node_Str" + "String_Node_Str" + "String_Node_Str");
  }
  if (clockId == PLATFORM_TIMER) {
    boolean fireAtTimeExists=false;
    if (_futurePlatformFireAtTimes.contains(fireAtTime)) {
      fireAtTimeExists=true;
    }
    if (!fireAtTimeExists) {
      _futurePlatformFireAtTimes.add(fireAtTime);
      Collections.sort(_futurePlatformFireAtTimes);
    }
  }
 else   if (clockId == EXECUTION_TIMER) {
    boolean fireAtTimeExists=false;
    if (_futureExecutionFireAtTimes.contains(fireAtTime)) {
      fireAtTimeExists=true;
    }
    if (!fireAtTimeExists) {
      _futureExecutionFireAtTimes.add(fireAtTime);
      Collections.sort(_futureExecutionFireAtTimes);
    }
  }
  Time temp=executiveDirector.fireAt((Actor)container,fireAtTime);
  if (temp.compareTo(fireAtTime) != 0) {
    throw new IllegalActionException(this,"String_Node_Str" + "String_Node_Str" + fireAtTime.toString() + "String_Node_Str"+ temp.toString());
  }
}

Fixed version (ground truth):
/** 
 * Convert the platform to an oracle time based on the platform clock that is used. Call fireAt() of the executive director, which is in charge of keeping track of the simulated physical time.
 * @param platformTime a Time object indicate the future platform time to fire.
 * @param clockId an int specifying the ID of the clock.
 * @exception IllegalActionException If cannot call fireAt of enclosingdirector, or if the oracle time is in the past, or cannot get the oracle time.
 */
protected void _fireAtPlatformTime(Time platformTime,int clockId) throws IllegalActionException {
  Actor container=(Actor)getContainer();
  Director executiveDirector=((Actor)container).getExecutiveDirector();
  Time fireAtTime=_getOraclePhysicalTimeForPlatformPhysicalTime(platformTime,clockId);
  if (fireAtTime == null) {
    throw new IllegalActionException(this,"String_Node_Str" + "String_Node_Str" + "String_Node_Str");
  }
  if (clockId == PLATFORM_TIMER) {
    boolean fireAtTimeExists=false;
    if (_futurePlatformFireAtTimes.contains(fireAtTime)) {
      fireAtTimeExists=true;
    }
    if (!fireAtTimeExists) {
      _futurePlatformFireAtTimes.add(fireAtTime);
      Collections.sort(_futurePlatformFireAtTimes);
    }
  }
 else   if (clockId == EXECUTION_TIMER) {
    boolean fireAtTimeExists=false;
    if (_futureExecutionFireAtTimes.contains(fireAtTime)) {
      fireAtTimeExists=true;
    }
    if (!fireAtTimeExists) {
      _futureExecutionFireAtTimes.add(fireAtTime);
      Collections.sort(_futureExecutionFireAtTimes);
    }
  }
  Time temp=executiveDirector.fireAt((Actor)container,fireAtTime);
  if (temp.compareTo(fireAtTime) != 0) {
    throw new IllegalActionException(this,"String_Node_Str" + "String_Node_Str" + fireAtTime.toString() + "String_Node_Str"+ temp.toString());
  }
}