Program: 72728
Project: 72728
Buggy source:
/** 
 * If functions needed for model exchange are absent, then thrown an exception with an informative message.  The .fmu file may not have a shared library for the current platform.
 * @exception IllegalActionException If functions needed for co-simulationare missing.
 */
private void _checkFmiModelExchange() throws IllegalActionException {
  StringBuffer missingFunctions=new StringBuffer();
  if (_fmiSetTimeFunction == null) {
    missingFunctions.append("String_Node_Str");
  }
  if (_fmiVersion < 2.0) {
    if (_fmiInitializeFunction == null) {
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiInstantiateModelFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
  }
 else {
    if (_fmiEnterInitializationModeFunction == null) {
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiEnterInitializationModeFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiInstantiateFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
  }
  if (_fmiModelDescription.numberOfContinuousStates > 0) {
    if (_fmiGetContinuousStatesFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiSetContinuousStates == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiGetDerivativesFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (!_completedIntegratorStepNotNeeded()) {
      if (_fmiCompletedIntegratorStepFunction == null) {
        if (missingFunctions.length() > 0) {
          missingFunctions.append("String_Node_Str");
        }
        missingFunctions.append("String_Node_Str");
      }
    }
  }
  if (missingFunctions.length() != 0) {
    String sharedLibrary="String_Node_Str";
    try {
      sharedLibrary="String_Node_Str" + FMUFile.fmuSharedLibrary(_fmiModelDescription) + "String_Node_Str";
    }
 catch (    IOException ex) {
      sharedLibrary="String_Node_Str" + ex;
    }
    List<String> binariesFiles=new LinkedList<String>();
    for (    File file : _fmiModelDescription.files) {
      if (file.toString().indexOf("String_Node_Str") != -1) {
        binariesFiles.add(file.toString() + "String_Node_Str");
      }
    }
    throw new IllegalActionException(this,"String_Node_Str" + missingFunctions + "String_Node_Str"+ "String_Node_Str"+ _fmiModelDescription.modelIdentifier+ "String_Node_Str"+ "String_Node_Str"+ fmuFile.asFile()+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ sharedLibrary+ "String_Node_Str"+ "String_Node_Str"+ binariesFiles);
  }
}

Fixed version (ground truth):
/** 
 * If functions needed for model exchange are absent, then thrown an exception with an informative message.  The .fmu file may not have a shared library for the current platform.
 * @exception IllegalActionException If functions needed for co-simulationare missing.
 */
private void _checkFmiModelExchange() throws IllegalActionException {
  StringBuffer missingFunctions=new StringBuffer();
  if (_fmiSetTimeFunction == null) {
    missingFunctions.append("String_Node_Str");
  }
  if (_fmiVersion < 1.5) {
    if (_fmiInitializeFunction == null) {
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiInstantiateModelFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
  }
 else   if (_fmiVersion >= 1.5 && _fmiVersion < 2.0) {
    throw new IllegalActionException(this,"String_Node_Str" + _fmiVersion);
  }
 else {
    if (_fmiEnterInitializationModeFunction == null) {
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiEnterInitializationModeFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiInstantiateFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
  }
  if (_fmiModelDescription.numberOfContinuousStates > 0) {
    if (_fmiGetContinuousStatesFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiSetContinuousStates == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (_fmiGetDerivativesFunction == null) {
      if (missingFunctions.length() > 0) {
        missingFunctions.append("String_Node_Str");
      }
      missingFunctions.append("String_Node_Str");
    }
    if (!_completedIntegratorStepNotNeeded()) {
      if (_fmiCompletedIntegratorStepFunction == null) {
        if (missingFunctions.length() > 0) {
          missingFunctions.append("String_Node_Str");
        }
        missingFunctions.append("String_Node_Str");
      }
    }
  }
  if (missingFunctions.length() != 0) {
    String sharedLibrary="String_Node_Str";
    try {
      sharedLibrary="String_Node_Str" + FMUFile.fmuSharedLibrary(_fmiModelDescription) + "String_Node_Str";
    }
 catch (    IOException ex) {
      sharedLibrary="String_Node_Str" + ex;
    }
    List<String> binariesFiles=new LinkedList<String>();
    for (    File file : _fmiModelDescription.files) {
      if (file.toString().indexOf("String_Node_Str") != -1) {
        binariesFiles.add(file.toString() + "String_Node_Str");
      }
    }
    throw new IllegalActionException(this,"String_Node_Str" + missingFunctions + "String_Node_Str"+ "String_Node_Str"+ _fmiModelDescription.modelIdentifier+ "String_Node_Str"+ "String_Node_Str"+ fmuFile.asFile()+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ sharedLibrary+ "String_Node_Str"+ "String_Node_Str"+ binariesFiles);
  }
}