Program: 17558
Project: 17558
Buggy source:
private void reload(){
  FileList.clear();
  if ((!currentPath.equals(StartFolder) || BrowseUpEnabled) && currentPath.getParentFile().exists()) {
    FileList.add(currentPath.getParentFile());
  }
  try {
    for (    File i : currentPath.listFiles()) {
      if (showHidden || !i.getName().startsWith("String_Node_Str")) {
        if (!AllowedEXT[0].equals("String_Node_Str") || AllowedEXT.length > 1) {
          if (i.isDirectory()) {
            FileList.add(i);
          }
 else {
            for (            String EXT : AllowedEXT) {
              if (i.getName().endsWith(EXT)) {
                FileList.add(i);
              }
            }
          }
        }
 else {
          FileList.add(i);
        }
      }
    }
  }
 catch (  NullPointerException e) {
    this.dismiss();
    throw e;
  }
  try {
    Collections.sort(FileList);
  }
 catch (  NullPointerException e) {
    e.printStackTrace();
  }
  String[] tmp=new String[FileList.toArray(new File[FileList.size()]).length];
  for (int i=0; i < tmp.length; i++) {
    if (i == 0 && (BrowseUpEnabled || !currentPath.equals(StartFolder)) && currentPath.getParentFile().exists()) {
      tmp[0]=currentPath.getParentFile().getAbsolutePath() + "String_Node_Str";
    }
 else {
      if (FileList.get(i).isDirectory()) {
        tmp[i]=FileList.get(i).getName() + "String_Node_Str";
      }
 else {
        tmp[i]=FileList.get(i).getName();
      }
    }
  }
  lvFiles.setAdapter(new ArrayAdapter<String>(mContext,android.R.layout.simple_list_item_1,tmp));
}

Fixed version (ground truth):
private void reload(){
  FileList.clear();
  if ((!currentPath.equals(StartFolder) || BrowseUpEnabled) && currentPath.getParentFile() != null) {
    FileList.add(currentPath.getParentFile());
  }
  try {
    for (    File i : currentPath.listFiles()) {
      if (showHidden || !i.getName().startsWith("String_Node_Str")) {
        if (!AllowedEXT[0].equals("String_Node_Str") || AllowedEXT.length > 1) {
          if (i.isDirectory()) {
            FileList.add(i);
          }
 else {
            for (            String EXT : AllowedEXT) {
              if (i.getName().endsWith(EXT)) {
                FileList.add(i);
              }
            }
          }
        }
 else {
          FileList.add(i);
        }
      }
    }
  }
 catch (  NullPointerException e) {
    if (isShowing()) {
      dismiss();
    }
  }
  try {
    Collections.sort(FileList);
  }
 catch (  NullPointerException e) {
    e.printStackTrace();
  }
  String[] tmp=new String[FileList.toArray(new File[FileList.size()]).length];
  for (int i=0; i < tmp.length; i++) {
    if (i == 0 && (BrowseUpEnabled || !currentPath.equals(StartFolder)) && currentPath.getParentFile() != null) {
      if (!currentPath.getParentFile().getAbsolutePath().equals("String_Node_Str")) {
        tmp[0]=currentPath.getParentFile().getAbsolutePath() + "String_Node_Str";
      }
 else {
        tmp[0]=currentPath.getParentFile().getAbsolutePath();
      }
    }
 else {
      if (FileList.get(i).isDirectory()) {
        tmp[i]=FileList.get(i).getName() + "String_Node_Str";
      }
 else {
        tmp[i]=FileList.get(i).getName();
      }
    }
  }
  lvFiles.setAdapter(new ArrayAdapter<String>(mContext,android.R.layout.simple_list_item_1,tmp));
}