Program: 186291
Project: 186291
Buggy source:
public void run(){
  running=true;
  init();
  if (files != null) {
    for (    File currentFile : files) {
      if (cancelled) {
        Log.v(TAG,"String_Node_Str");
        return;
      }
      progress++;
      updateProgress(progress,totalCount);
      if (currentFile.getName().equalsIgnoreCase(FileUtils.NOMEDIA_FILE_NAME))       noMedia=true;
      if (!displayHidden && currentFile.isHidden()) {
        continue;
      }
      if (currentFile.isDirectory()) {
        if (currentFile.getAbsolutePath().equals(mSdCardPath)) {
          listSdCard.add(new FileHolder(currentFile,mMimeTypes.getMimeType(currentFile.getName()),sdIcon,context));
        }
 else {
          if (!mWriteableOnly || currentFile.canWrite())           listDir.add(new FileHolder(currentFile,mMimeTypes.getMimeType(currentFile.getName()),folderIcon,context));
        }
      }
 else {
        String fileName=currentFile.getName();
        String mimetype=mMimeTypes.getMimeType(fileName);
        String filetype=FileUtils.getExtension(fileName);
        boolean ext_allow=filetype.equalsIgnoreCase(mFilterFiletype) || mFilterFiletype == "String_Node_Str";
        boolean mime_allow=mFilterMimetype != null && (mimetype.contentEquals(mFilterMimetype) || mFilterMimetype.contentEquals("String_Node_Str") || mFilterFiletype == null);
        if (!mDirectoriesOnly && (ext_allow || mime_allow)) {
          listFile.add(new FileHolder(currentFile,mimetype,context));
        }
      }
    }
  }
  Log.v(TAG,"String_Node_Str");
  int sortBy=PreferenceActivity.getSortBy(context);
  boolean ascending=PreferenceActivity.getAscending(context);
  Collections.sort(listSdCard);
  Collections.sort(listDir,Comparators.getForDirectory(sortBy,ascending));
  Collections.sort(listFile,Comparators.getForFile(sortBy,ascending));
  if (!cancelled) {
    Log.v(TAG,"String_Node_Str");
    DirectoryContents contents=new DirectoryContents();
    contents.listDir=listDir;
    contents.listFile=listFile;
    contents.listSdCard=listSdCard;
    contents.noMedia=noMedia;
    Message msg=handler.obtainMessage(MESSAGE_SHOW_DIRECTORY_CONTENTS);
    msg.obj=contents;
    msg.sendToTarget();
  }
  running=false;
}

Fixed version (ground truth):
public void run(){
  running=true;
  init();
  if (files != null) {
    for (    File currentFile : files) {
      if (cancelled) {
        Log.v(TAG,"String_Node_Str");
        return;
      }
      progress++;
      updateProgress(progress,totalCount);
      if (currentFile.getName().equalsIgnoreCase(FileUtils.NOMEDIA_FILE_NAME))       noMedia=true;
      if (!displayHidden && currentFile.isHidden()) {
        continue;
      }
      if (currentFile.isDirectory()) {
        if (currentFile.getAbsolutePath().equals(mSdCardPath)) {
          listSdCard.add(new FileHolder(currentFile,mMimeTypes.getMimeType(currentFile.getName()),sdIcon,context));
        }
 else {
          if (!mWriteableOnly || currentFile.canWrite())           listDir.add(new FileHolder(currentFile,mMimeTypes.getMimeType(currentFile.getName()),folderIcon,context));
        }
      }
 else {
        String fileName=currentFile.getName();
        String mimetype=mMimeTypes.getMimeType(fileName);
        String filetype=FileUtils.getExtension(fileName);
        boolean ext_allow=filetype.equalsIgnoreCase(mFilterFiletype) || mFilterFiletype == "String_Node_Str";
        boolean mime_allow=mFilterMimetype != null && (mimetype.contentEquals(mFilterMimetype) || mFilterMimetype.contentEquals("String_Node_Str") || mFilterFiletype == null);
        if (!mDirectoriesOnly && (ext_allow || mime_allow)) {
          listFile.add(new FileHolder(currentFile,mimetype,context));
        }
      }
    }
  }
  Log.v(TAG,"String_Node_Str");
  int sortBy=PreferenceActivity.getSortBy(context);
  boolean ascending=PreferenceActivity.getAscending(context);
  if (!cancelled) {
    Collections.sort(listSdCard);
    Collections.sort(listDir,Comparators.getForDirectory(sortBy,ascending));
    Collections.sort(listFile,Comparators.getForFile(sortBy,ascending));
  }
  if (!cancelled) {
    Log.v(TAG,"String_Node_Str");
    DirectoryContents contents=new DirectoryContents();
    contents.listDir=listDir;
    contents.listFile=listFile;
    contents.listSdCard=listSdCard;
    contents.noMedia=noMedia;
    Message msg=handler.obtainMessage(MESSAGE_SHOW_DIRECTORY_CONTENTS);
    msg.obj=contents;
    msg.sendToTarget();
  }
  running=false;
}