Program: 99476
Project: 99476
Buggy source:
@Override public void send(MidiMessage message,long timeStamp){
  if (outputDevice == null) {
    throw new IllegalStateException("String_Node_Str");
  }
  if (message instanceof MetaMessage) {
    final MetaMessage metaMessage=(MetaMessage)message;
    outputDevice.sendMidiSystemCommonMessage(cableId,metaMessage.getData());
  }
 else   if (message instanceof SysexMessage) {
    final SysexMessage sysexMessage=(SysexMessage)message;
    outputDevice.sendMidiSystemExclusive(cableId,sysexMessage.getData());
  }
 else   if (message instanceof ShortMessage) {
    final ShortMessage shortMessage=(ShortMessage)message;
switch (shortMessage.getCommand()) {
case ShortMessage.CHANNEL_PRESSURE:
      outputDevice.sendMidiChannelAftertouch(cableId,shortMessage.getChannel(),shortMessage.getData1());
    break;
case ShortMessage.CONTROL_CHANGE:
  outputDevice.sendMidiControlChange(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.NOTE_OFF:
outputDevice.sendMidiNoteOff(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.NOTE_ON:
outputDevice.sendMidiNoteOn(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.PITCH_BEND:
outputDevice.sendMidiPitchWheel(cableId,shortMessage.getChannel(),shortMessage.getData1() | (shortMessage.getData2() << 7));
break;
case ShortMessage.POLY_PRESSURE:
outputDevice.sendMidiPolyphonicAftertouch(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.PROGRAM_CHANGE:
outputDevice.sendMidiProgramChange(cableId,shortMessage.getChannel(),shortMessage.getData1());
break;
default :
}
}
}

Fixed version (ground truth):
@Override public void send(MidiMessage message,long timeStamp){
  if (outputDevice == null) {
    open();
  }
  if (message instanceof MetaMessage) {
    final MetaMessage metaMessage=(MetaMessage)message;
    outputDevice.sendMidiSystemCommonMessage(cableId,metaMessage.getData());
  }
 else   if (message instanceof SysexMessage) {
    final SysexMessage sysexMessage=(SysexMessage)message;
    outputDevice.sendMidiSystemExclusive(cableId,sysexMessage.getData());
  }
 else   if (message instanceof ShortMessage) {
    final ShortMessage shortMessage=(ShortMessage)message;
switch (shortMessage.getCommand()) {
case ShortMessage.CHANNEL_PRESSURE:
      outputDevice.sendMidiChannelAftertouch(cableId,shortMessage.getChannel(),shortMessage.getData1());
    break;
case ShortMessage.CONTROL_CHANGE:
  outputDevice.sendMidiControlChange(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.NOTE_OFF:
outputDevice.sendMidiNoteOff(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.NOTE_ON:
outputDevice.sendMidiNoteOn(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.PITCH_BEND:
outputDevice.sendMidiPitchWheel(cableId,shortMessage.getChannel(),shortMessage.getData1() | (shortMessage.getData2() << 7));
break;
case ShortMessage.POLY_PRESSURE:
outputDevice.sendMidiPolyphonicAftertouch(cableId,shortMessage.getChannel(),shortMessage.getData1(),shortMessage.getData2());
break;
case ShortMessage.PROGRAM_CHANGE:
outputDevice.sendMidiProgramChange(cableId,shortMessage.getChannel(),shortMessage.getData1());
break;
default :
}
}
}