Program: 76169
Project: 76169
Buggy source:
/** 
 * Check parameters and begin the sound capture process. If the capture source is a sound file, the file is reopened and capture is reset to the beginning of the file.
 * @exception IllegalActionException If the parametersare out of range.
 */
public void initialize() throws IllegalActionException {
  super.initialize();
  if (((StringToken)source.getToken()).toString() == "String_Node_Str") {
    String theURL=((StringToken)pathName.getToken()).toString();
    _soundCapture=new SoundCapture(theURL,_productionRate);
    try {
      _soundCapture.startCapture();
    }
 catch (    IOException ex) {
      throw new IllegalActionException("String_Node_Str" + ex.getMessage());
    }
    _channels=_soundCapture.getChannels();
    channels.setToken(new IntToken(_channels));
  }
 else   if (((StringToken)source.getToken()).toString() == "String_Node_Str") {
    int sampleRateInt=((IntToken)sampleRate.getToken()).intValue();
    int sampleSizeInBitsInt=((IntToken)sampleSizeInBits.getToken()).intValue();
    int channelsInt=((IntToken)channels.getToken()).intValue();
    int bufferSizeInt=((IntToken)bufferSize.getToken()).intValue();
    int getSamplesSizeInt=_productionRate;
    _soundCapture=new SoundCapture((float)sampleRateInt,sampleSizeInBitsInt,channelsInt,bufferSizeInt,getSamplesSizeInt);
    try {
      _soundCapture.startCapture();
    }
 catch (    IOException ex) {
      throw new IllegalActionException("String_Node_Str" + ex.getMessage());
    }
  }
 else {
    throw new IllegalActionException("String_Node_Str" + source.getFullName() + "String_Node_Str");
  }
  _audioTokenArray=new DoubleToken[_productionRate];
}

Fixed version (ground truth):
/** 
 * Check parameters and begin the sound capture process. If the capture source is a sound file, the file is reopened and capture is reset to the beginning of the file.
 * @exception IllegalActionException If the parametersare out of range.
 */
public void initialize() throws IllegalActionException {
  super.initialize();
  if (((StringToken)source.getToken()).toString().equals("String_Node_Str")) {
    String theURL=((StringToken)pathName.getToken()).toString();
    _soundCapture=new SoundCapture(theURL,_productionRate);
    try {
      _soundCapture.startCapture();
    }
 catch (    IOException ex) {
      throw new IllegalActionException("String_Node_Str" + ex.getMessage());
    }
    _channels=_soundCapture.getChannels();
    channels.setToken(new IntToken(_channels));
  }
 else   if (((StringToken)source.getToken()).toString().equals("String_Node_Str")) {
    int sampleRateInt=((IntToken)sampleRate.getToken()).intValue();
    int sampleSizeInBitsInt=((IntToken)sampleSizeInBits.getToken()).intValue();
    int channelsInt=((IntToken)channels.getToken()).intValue();
    int bufferSizeInt=((IntToken)bufferSize.getToken()).intValue();
    int getSamplesSizeInt=_productionRate;
    _soundCapture=new SoundCapture((float)sampleRateInt,sampleSizeInBitsInt,channelsInt,bufferSizeInt,getSamplesSizeInt);
    try {
      _soundCapture.startCapture();
    }
 catch (    IOException ex) {
      throw new IllegalActionException("String_Node_Str" + ex.getMessage());
    }
  }
 else {
    throw new IllegalActionException("String_Node_Str" + source.getFullName() + "String_Node_Str");
  }
  _audioTokenArray=new DoubleToken[_productionRate];
}