Program: 73008
Project: 73008
Buggy source:
/** 
 * Evaluate the expression and send its result to the output.
 * @exception IllegalActionException If the evaluation of the expressiontriggers it, or the evaluation yields a null result, or the evaluation yields an incompatible type, or if there is no director.
 */
public void fire() throws IllegalActionException {
  super.fire();
  _omcProxy=OMCProxy.getInstance();
  if (_debugging) {
    _debug("String_Node_Str");
  }
  if (input.getWidth() > 0) {
    IntToken inputPortValue=(IntToken)input.get(0);
    try {
      _omcProxy.loadFile(fileName.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str");
    }
    try {
      System.out.println("String_Node_Str");
      _omcProxy.modifyVariables(inputPortValue,modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str");
    }
  }
  try {
    _omcProxy.simulateModel(fileName.getExpression(),modelName.getExpression(),fileNamePrefix.getExpression(),simulationStartTime.getExpression(),simulationStopTime.getExpression(),Integer.parseInt(numberOfIntervals.getExpression()),tolerance.getExpression(),method.getExpression(),outputFormat.getExpression(),variableFilter.getExpression(),cflags.getExpression(),simflags.getExpression(),processingType.getExpression());
  }
 catch (  Throwable throwable) {
    throw new IllegalActionException(this,throwable,"String_Node_Str" + modelName.getExpression() + "String_Node_Str");
  }
  if ((processingType.getExpression().compareTo("String_Node_Str") == 0) && (outputFormat.getExpression().compareTo("String_Node_Str") == 0)) {
    String simulationResult=null;
    try {
      simulationResult=_omcProxy.displaySimulationResult(fileName.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str" + modelName.getExpression() + "String_Node_Str");
    }
    output.send(0,new StringToken(simulationResult));
  }
  if (outputFormat.getExpression().compareTo("String_Node_Str") == 0) {
    try {
      _omcProxy.plotPltFile(fileNamePrefix.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str" + modelName.getExpression() + "String_Node_Str");
    }
  }
}

Fixed version (ground truth):
/** 
 * Evaluate the expression and send its result to the output.
 * @exception IllegalActionException If the evaluation of the expressiontriggers it, or the evaluation yields a null result, or the evaluation yields an incompatible type, or if there is no director.
 */
public void fire() throws IllegalActionException {
  super.fire();
  _omcProxy=OMCProxy.getInstance();
  try {
    _omcProxy.loadFile(fileName.getExpression(),modelName.getExpression());
  }
 catch (  ConnectException e) {
    throw new IllegalActionException("String_Node_Str");
  }
  if (input.getWidth() > 0) {
    IntToken inputPortValue=(IntToken)input.get(0);
    try {
      System.out.println("String_Node_Str");
      _omcProxy.modifyVariables(inputPortValue,modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str");
    }
  }
  try {
    try {
      _omcProxy.loadFile(fileName.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str");
    }
    _omcProxy.simulateModel(fileName.getExpression(),modelName.getExpression(),fileNamePrefix.getExpression(),simulationStartTime.getExpression(),simulationStopTime.getExpression(),Integer.parseInt(numberOfIntervals.getExpression()),tolerance.getExpression(),method.getExpression(),outputFormat.getExpression(),variableFilter.getExpression(),cflags.getExpression(),simflags.getExpression(),processingType.getExpression());
  }
 catch (  Throwable throwable) {
    throw new IllegalActionException(this,throwable,"String_Node_Str" + modelName.getExpression() + "String_Node_Str");
  }
  if ((processingType.getExpression().compareTo("String_Node_Str") == 0) && (outputFormat.getExpression().compareTo("String_Node_Str") == 0)) {
    String simulationResult=null;
    try {
      _omcProxy.loadFile(fileName.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str");
    }
    try {
      simulationResult=_omcProxy.displaySimulationResult(fileName.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str" + modelName.getExpression() + "String_Node_Str");
    }
    output.send(0,new StringToken(simulationResult));
  }
  if (outputFormat.getExpression().compareTo("String_Node_Str") == 0) {
    try {
      _omcProxy.plotPltFile(fileNamePrefix.getExpression(),modelName.getExpression());
    }
 catch (    ConnectException e) {
      throw new IllegalActionException("String_Node_Str" + modelName.getExpression() + "String_Node_Str");
    }
  }
}