Program: 21236
Project: 21236
Buggy source:
/** 
 * Startet das abwarbeiten der extractqueue
 */
private void addToQueue(final DownloadLink link){
  if (!new File(link.getFileOutput()).exists()) {
    return;
  }
  System.out.println("String_Node_Str" + link + "String_Node_Str"+ CODEPAGE+ "String_Node_Str");
  link.getLinkStatus().removeStatus(LinkStatus.ERROR_POST_PROCESS);
  link.getLinkStatus().setErrorMessage(null);
  File dl=this.getExtractToPath(link);
  if (link.getHost().equals(DUMMY_HOSTER)) {
    ProgressController progress=new ProgressController(JDLocale.LF("String_Node_Str","String_Node_Str",link.getFileOutput()),100);
    link.setProperty("String_Node_Str",progress);
  }
  UnrarWrapper wrapper=new UnrarWrapper(link);
  wrapper.addUnrarListener(this);
  wrapper.setExtractTo(dl);
  wrapper.setRemoveAfterExtract(this.getPluginConfig().getBooleanProperty(JDUnrarConstants.CONFIG_KEY_REMVE_AFTER_EXTRACT,false));
  wrapper.setOverwrite(this.getPluginConfig().getBooleanProperty(JDUnrarConstants.CONFIG_KEY_OVERWRITE,true));
  wrapper.setUnrarCommand(getPluginConfig().getStringProperty(JDUnrarConstants.CONFIG_KEY_UNRARCOMMAND));
  ArrayList<String> pwList=new ArrayList<String>();
  String[] linkPws=JDUtilities.passwordStringToArray(link.getFilePackage().getPassword());
  for (  String pw : linkPws) {
    pwList.add(pw);
  }
  pwList.addAll(PasswordList.getPasswordList());
  wrapper.setPasswordList(pwList.toArray(new String[]{}));
  queue.add(wrapper);
  queue.start();
  ArrayList<DownloadLink> list=this.getArchiveList(link);
  for (  DownloadLink l : list) {
    if (l == null)     continue;
    l.setProperty(JDUnrarConstants.DOWNLOADLINK_KEY_EXTRACTEDPATH,dl.getAbsolutePath());
  }
}

Fixed version (ground truth):
/** 
 * Startet das abwarbeiten der extractqueue
 */
private void addToQueue(final DownloadLink link){
  if (!new File(link.getFileOutput()).exists()) {
    return;
  }
  System.out.println("String_Node_Str" + link + "String_Node_Str"+ CODEPAGE+ "String_Node_Str");
  link.getLinkStatus().removeStatus(LinkStatus.ERROR_POST_PROCESS);
  link.getLinkStatus().setErrorMessage(null);
  File dl=this.getExtractToPath(link);
  if (link.getHost().equals(DUMMY_HOSTER)) {
    ProgressController progress=new ProgressController(JDLocale.LF("String_Node_Str","String_Node_Str",link.getFileOutput()),100);
    link.setProperty("String_Node_Str",progress);
  }
  UnrarWrapper wrapper=new UnrarWrapper(link);
  wrapper.addUnrarListener(this);
  wrapper.setExtractTo(dl);
  wrapper.setRemoveAfterExtract(this.getPluginConfig().getBooleanProperty(JDUnrarConstants.CONFIG_KEY_REMVE_AFTER_EXTRACT,false));
  wrapper.setOverwrite(this.getPluginConfig().getBooleanProperty(JDUnrarConstants.CONFIG_KEY_OVERWRITE,true));
  wrapper.setUnrarCommand(getPluginConfig().getStringProperty(JDUnrarConstants.CONFIG_KEY_UNRARCOMMAND));
  ArrayList<String> pwList=new ArrayList<String>();
  String[] linkPws=JDUtilities.passwordStringToArray(link.getFilePackage().getPassword());
  for (  String pw : linkPws) {
    pwList.add(pw);
  }
  pwList.addAll(PasswordList.getPasswordList());
  pwList.add(this.getArchiveName(link));
  pwList.add(new File(link.getFileOutput()).getName());
  wrapper.setPasswordList(pwList.toArray(new String[]{}));
  queue.add(wrapper);
  queue.start();
  ArrayList<DownloadLink> list=this.getArchiveList(link);
  for (  DownloadLink l : list) {
    if (l == null)     continue;
    l.setProperty(JDUnrarConstants.DOWNLOADLINK_KEY_EXTRACTEDPATH,dl.getAbsolutePath());
  }
}