Program: 21387
Project: 21387
Buggy source:
/** 
 * Startet den Entpackungsprozess. Es werden alle Zielordner zurückgegeben
 */
public Vector<String> unrar(){
  unrar=getUnrarCommand();
  logger.info("String_Node_Str");
  logger.info("String_Node_Str" + unrar);
  if (useToextractlist) {
    if (extractFolder != null)     logger.info("String_Node_Str" + extractFolder);
 else     useToextractlist=false;
  }
  logger.info("String_Node_Str" + useToextractlist);
  logger.info("String_Node_Str" + overwriteFiles);
  logger.info("String_Node_Str" + autoDelete);
  if (unrar == null) {
    return null;
  }
  loadUnpackedList();
  if (useToextractlist) {
    loadToExtractList();
    files.putAll(toExtractlist);
  }
  progress.setStatusText("String_Node_Str");
  progress.increase(1);
  for (  Map.Entry<File,String> entry : files.entrySet()) {
    File file=entry.getKey();
    if (file.isFile()) {
      String name=file.getName();
      if (name.matches("String_Node_Str") && (autoDelete || !isFileInUnpackedList(entry.getKey()))) {
        if (isFollowing(name)) {
          if (useToextractlist) {
            String pw=entry.getValue();
            if (pw == null && standardPassword != null)             pw=standardPassword;
            addToToExtractList(entry.getKey(),pw);
          }
        }
 else {
          logger.finer("String_Node_Str" + entry.getKey());
          String pw=entry.getValue();
          if (pw == null && standardPassword != null)           pw=standardPassword;
          logger.info("String_Node_Str" + pw);
          if (extractFile(entry.getKey(),pw)) {
            ret.add(entry.getKey().getParentFile().getAbsolutePath());
          }
        }
      }
 else       if (!name.matches("String_Node_Str") && name.matches("String_Node_Str") && (autoDelete || !isFileInUnpackedList(entry.getKey()))) {
        if (isFollowing(name)) {
          if (useToextractlist) {
            String pw=entry.getValue();
            if (pw == null && standardPassword != null)             pw=standardPassword;
            addToToExtractList(entry.getKey(),standardPassword);
          }
        }
 else {
          logger.finer("String_Node_Str" + entry.getKey());
          String pw=entry.getValue();
          if (pw == null && standardPassword != null)           pw=standardPassword;
          logger.info("String_Node_Str" + pw);
          if (extractFile(entry.getKey(),pw)) {
            ret.add(entry.getKey().getParentFile().getAbsolutePath());
          }
        }
      }
 else {
      }
    }
 else     logger.fine(file.getName() + "String_Node_Str");
  }
  closeEvent();
  logger.info("String_Node_Str");
  progress.finalize();
  return ret;
}

Fixed version (ground truth):
/** 
 * Startet den Entpackungsprozess. Es werden alle Zielordner zurückgegeben
 */
public Vector<String> unrar(){
  unrar=getUnrarCommand();
  logger.info("String_Node_Str");
  logger.info("String_Node_Str" + unrar);
  logger.info("String_Node_Str" + extractFolder);
  logger.info("String_Node_Str" + useToextractlist);
  logger.info("String_Node_Str" + overwriteFiles);
  logger.info("String_Node_Str" + autoDelete);
  if (unrar == null) {
    return null;
  }
  loadUnpackedList();
  if (useToextractlist) {
    loadToExtractList();
    files.putAll(toExtractlist);
  }
  progress.setStatusText("String_Node_Str");
  progress.increase(1);
  for (  Map.Entry<File,String> entry : files.entrySet()) {
    File file=entry.getKey();
    if (file.isFile()) {
      String name=file.getName();
      if (name.matches("String_Node_Str") && (autoDelete || !isFileInUnpackedList(entry.getKey()))) {
        if (isFollowing(name)) {
          if (useToextractlist) {
            String pw=entry.getValue();
            if (pw == null && standardPassword != null)             pw=standardPassword;
            addToToExtractList(entry.getKey(),pw);
          }
        }
 else {
          logger.finer("String_Node_Str" + entry.getKey());
          String pw=entry.getValue();
          if (pw == null && standardPassword != null)           pw=standardPassword;
          logger.info("String_Node_Str" + pw);
          if (extractFile(entry.getKey(),pw)) {
            ret.add(entry.getKey().getParentFile().getAbsolutePath());
          }
        }
      }
 else       if (!name.matches("String_Node_Str") && name.matches("String_Node_Str") && (autoDelete || !isFileInUnpackedList(entry.getKey()))) {
        if (isFollowing(name)) {
          if (useToextractlist) {
            String pw=entry.getValue();
            if (pw == null && standardPassword != null)             pw=standardPassword;
            addToToExtractList(entry.getKey(),standardPassword);
          }
        }
 else {
          logger.finer("String_Node_Str" + entry.getKey());
          String pw=entry.getValue();
          if (pw == null && standardPassword != null)           pw=standardPassword;
          logger.info("String_Node_Str" + pw);
          if (extractFile(entry.getKey(),pw)) {
            ret.add(entry.getKey().getParentFile().getAbsolutePath());
          }
        }
      }
 else {
      }
    }
 else     logger.fine(file.getName() + "String_Node_Str");
  }
  closeEvent();
  logger.info("String_Node_Str");
  progress.finalize();
  return ret;
}