Program: 85707
Project: 85707
Buggy source:
/** 
 * @param rootNode
 * @param depth number of parent allready visited
 */
private void CheckDir(File rootNode,int depth){
  boolean folderHasAlbumArt=false;
  try {
    if (rootNode.list(hasAlbumArt).length > 0) {
      folderHasAlbumArt=true;
    }
    for (    String mp3 : rootNode.list(FileFilters.PLAYABLE_FILES_FILTER)) {
      Log.v(preferences.GetTag(),"String_Node_Str" + rootNode + "String_Node_Str"+ mp3);
      metaDataReader.setDataSource(rootNode + "String_Node_Str" + mp3);
      String title=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
      String preFormat=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
      String postFormat="String_Node_Str";
      String item;
      boolean passed=false;
      if (preFormat != null && preFormat != "String_Node_Str") {
        for (int i=0; i < preFormat.length(); i++) {
          item=preFormat.substring(i,i + 1);
          if (item != "String_Node_Str" && passed != true) {
            postFormat=postFormat + item;
          }
 else {
            passed=true;
          }
        }
        try {
          number=Integer.parseInt(postFormat);
        }
 catch (        NumberFormatException e) {
        }
      }
 else {
        number=0;
      }
      double length=Double.parseDouble(metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
      String artist=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
      String album=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
      if (title == null) {
        title="String_Node_Str";
      }
      if (artist == null) {
        artist="String_Node_Str";
      }
      if (album == null) {
        album="String_Node_Str";
      }
      Track t=new Track(title,number,new Artist(artist),new Album(album),length,rootNode + "String_Node_Str" + mp3,rootNode + "String_Node_Str",folderHasAlbumArt);
      this.AddTrack(t);
    }
    for (    File dir : rootNode.listFiles(isDIR)) {
      if (depth < MAX_DIR_SCAN_DEPTH) {
        CheckDir(dir,depth + 1);
      }
    }
  }
 catch (  NullPointerException e) {
    Log.v(preferences.GetTag(),e.getMessage());
  }
}

Fixed version (ground truth):
/** 
 * @param rootNode
 * @param depth number of parent allready visited
 */
private void CheckDir(File rootNode,int depth){
  boolean folderHasAlbumArt=false;
  try {
    if (rootNode.list(hasAlbumArt).length > 0) {
      folderHasAlbumArt=true;
    }
    for (    String mp3 : rootNode.list(FileFilters.PLAYABLE_FILES_FILTER)) {
      Log.v(preferences.GetTag(),"String_Node_Str" + rootNode + "String_Node_Str"+ mp3);
      metaDataReader.setDataSource(rootNode + "String_Node_Str" + mp3);
      String title=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
      String preFormat=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
      String postFormat="String_Node_Str";
      String item;
      boolean passed=false;
      if (preFormat != null && preFormat != "String_Node_Str") {
        for (int i=0; i < preFormat.length(); i++) {
          item=preFormat.substring(i,i + 1);
          if (item != "String_Node_Str" && passed != true) {
            postFormat=postFormat + item;
          }
 else {
            passed=true;
          }
        }
        try {
          number=Integer.parseInt(postFormat);
        }
 catch (        NumberFormatException e) {
          Log.v(preferences.GetTag(),e.getMessage());
        }
      }
 else {
        number=0;
      }
      double length=Double.parseDouble(metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
      String artist=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
      String album=metaDataReader.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
      if (title == null) {
        title="String_Node_Str";
      }
      if (artist == null) {
        artist="String_Node_Str";
      }
      if (album == null) {
        album="String_Node_Str";
      }
      Track t=new Track(title,number,new Artist(artist),new Album(album),length,rootNode + "String_Node_Str" + mp3,rootNode + "String_Node_Str",folderHasAlbumArt);
      this.AddTrack(t);
    }
    for (    File dir : rootNode.listFiles(isDIR)) {
      if (depth < MAX_DIR_SCAN_DEPTH) {
        CheckDir(dir,depth + 1);
      }
    }
  }
 catch (  NullPointerException e) {
    Log.v(preferences.GetTag(),e.getMessage());
  }
}