Program: 21409
Project: 21409
Buggy source:
/** 
 * Delligiert die Pluginevents weiter an das host/decryptpanel. CHangedEvents werden abgefangen und im sekundeninterval weitergegeben.
 */
public void delegatedPluginEvent(PluginEvent event){
  if (event.getSource() instanceof PluginForHost && event.getEventID() == PluginEvent.PLUGIN_DATA_CHANGED) {
    this.hostPluginDataChanged=event;
    return;
  }
  if (event.getSource() instanceof PluginForDecrypt && event.getEventID() == PluginEvent.PLUGIN_DATA_CHANGED) {
    this.decryptPluginDataChanged=event;
    return;
  }
  if (event.getSource() instanceof PluginForSearch && event.getEventID() == PluginEvent.PLUGIN_DATA_CHANGED) {
    this.decryptPluginDataChanged=event;
    return;
  }
  if (event.getSource() instanceof PluginForHost) {
    tabDownloadTable.pluginEvent(event);
    return;
  }
  if (event.getSource() instanceof PluginForDecrypt || event.getSource() instanceof PluginForSearch) {
    splitpane.setDividerLocation(0.8);
    return;
  }
  if (event.getSource() instanceof PluginOptional || event.getSource() instanceof UserPlugin) {
    JDAction actionToDo=null;
switch (event.getEventID()) {
case PluginEvent.PLUGIN_CONTROL_DND:
      actionToDo=actionDnD;
    break;
case PluginEvent.PLUGIN_CONTROL_EXIT:
  actionToDo=actionExit;
break;
case PluginEvent.PLUGIN_CONTROL_RECONNECT:
actionToDo=actionReconnect;
break;
case PluginEvent.PLUGIN_CONTROL_SHOW_CONFIG:
actionToDo=actionConfig;
break;
case PluginEvent.PLUGIN_CONTROL_SHOW_UI:
frame.setVisible((Boolean)event.getParameter1());
break;
case PluginEvent.PLUGIN_CONTROL_START_STOP:
actionToDo=actionStartStopDownload;
break;
}
if (actionToDo != null) actionPerformed(new ActionEvent(this,actionToDo.getActionID(),"String_Node_Str"));
}
}

Fixed version (ground truth):
/** 
 * Delligiert die Pluginevents weiter an das host/decryptpanel. CHangedEvents werden abgefangen und im sekundeninterval weitergegeben.
 */
public void delegatedPluginEvent(PluginEvent event){
  if (event.getSource() instanceof PluginForHost && event.getEventID() == PluginEvent.PLUGIN_DATA_CHANGED) {
    this.hostPluginDataChanged=event;
    return;
  }
  if (event.getSource() instanceof PluginForDecrypt && event.getEventID() == PluginEvent.PLUGIN_DATA_CHANGED) {
    this.decryptPluginDataChanged=event;
    return;
  }
  if (event.getSource() instanceof PluginForSearch && event.getEventID() == PluginEvent.PLUGIN_DATA_CHANGED) {
    this.decryptPluginDataChanged=event;
    return;
  }
  if (event.getSource() instanceof PluginForHost) {
    tabDownloadTable.pluginEvent(event);
    return;
  }
  if (event.getSource() instanceof PluginForDecrypt || event.getSource() instanceof PluginForSearch) {
    splitpane.setDividerLocation(0.8);
    return;
  }
  if (event.getSource() instanceof PluginOptional) {
    JDAction actionToDo=null;
switch (event.getEventID()) {
case PluginEvent.PLUGIN_CONTROL_DND:
      actionToDo=actionDnD;
    break;
case PluginEvent.PLUGIN_CONTROL_EXIT:
  actionToDo=actionExit;
break;
case PluginEvent.PLUGIN_CONTROL_RECONNECT:
actionToDo=actionReconnect;
break;
case PluginEvent.PLUGIN_CONTROL_SHOW_CONFIG:
actionToDo=actionConfig;
break;
case PluginEvent.PLUGIN_CONTROL_SHOW_UI:
frame.setVisible((Boolean)event.getParameter1());
break;
case PluginEvent.PLUGIN_CONTROL_START_STOP:
actionToDo=actionStartStopDownload;
break;
}
if (actionToDo != null) actionPerformed(new ActionEvent(this,actionToDo.getActionID(),"String_Node_Str"));
}
}