Program: 184273
Project: 184273
Buggy source:
/** 
 * Converts MMP to CUE
 * @param mmp
 * @param readID3 use ID3 lookup
 * @return
 */
private static CueSheet getCueSheetFromMixmeisterPlaylist(MixmeisterPlaylist mmp,boolean readID3){
  CueSheet cueSheet=new CueSheet("String_Node_Str","String_Node_Str");
  double position=0;
  String performer, songTitle;
  mixmeister.mmp.Track mmpTrack;
  for (int i=0; i < mmp.getTracks().size(); ++i) {
    mmpTrack=mmp.getTracks().get(i);
switch (mmpTrack.getHeader().getTrackType()) {
case TrackType.OVERLAY:
case TrackType.OVERLAY_WITH_BEATSYNC:
case TrackType.OVERLAY_WITHOUT_BEATSYNC:
      break;
default :
    cue.Track cueTrack=new cue.Track(i + 1);
  performer="String_Node_Str";
songTitle="String_Node_Str" + cueTrack.getNumber();
String fileName=mmpTrack.getFileName();
if (readID3) {
try {
MP3File mp3=new MP3File(new File(fileName),MP3File.LOAD_ALL,true);
if (mp3.hasID3v1Tag()) {
  ID3v1Tag tag=mp3.getID3v1Tag();
  performer=tag.getArtist();
  songTitle=tag.getTitle();
}
if (mp3.hasID3v2Tag()) {
  AbstractID3v2Tag tag=mp3.getID3v2TagAsv24();
  String value=extractID3v2TagValue(tag,"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  if (value != null) {
    performer=value;
  }
  value=extractID3v2TagValue(tag,"String_Node_Str","String_Node_Str");
  if (value != null) {
    songTitle=value;
  }
}
}
 catch (IOException e) {
e.printStackTrace();
}
catch (TagException e) {
e.printStackTrace();
}
catch (ReadOnlyFileException e) {
e.printStackTrace();
}
catch (InvalidAudioFrameException e) {
e.printStackTrace();
}
}
cueTrack.setPerformer(performer);
cueTrack.setTitle(songTitle);
cueTrack.getIndices().add(new Index(position));
cueSheet.getTracks().add(cueTrack);
Marker outroAnchor=new LinkedList<Marker>(mmp.getTracks().get(i).getMarkers(Marker.OUTRO_RANGE)).getLast();
position+=outroAnchor.getPosition() / 1000000.0;
break;
}
}
return cueSheet;
}

Fixed version (ground truth):
/** 
 * Converts MMP to CUE
 * @param mmp
 * @param readID3 use ID3 lookup
 * @return
 */
private static CueSheet getCueSheetFromMixmeisterPlaylist(MixmeisterPlaylist mmp,boolean readID3){
  CueSheet cueSheet=new CueSheet("String_Node_Str","String_Node_Str");
  double position=0;
  String performer, songTitle;
  mixmeister.mmp.Track mmpTrack;
  for (int i=0; i < mmp.getTracks().size(); ++i) {
    mmpTrack=mmp.getTracks().get(i);
switch (mmpTrack.getHeader().getTrackType()) {
case TrackType.OVERLAY:
case TrackType.OVERLAY_WITH_BEATSYNC:
case TrackType.OVERLAY_WITHOUT_BEATSYNC:
      break;
default :
    cue.Track cueTrack=new cue.Track(i + 1);
  performer="String_Node_Str";
songTitle="String_Node_Str" + cueTrack.getNumber();
String fileName=mmpTrack.getFileName();
if (readID3) {
try {
MP3File mp3=new MP3File(new File(fileName),MP3File.LOAD_ALL,true);
performer=ID3Helper.getArtist(mp3);
songTitle=ID3Helper.getTitle(mp3);
}
 catch (IOException e) {
e.printStackTrace();
}
catch (TagException e) {
e.printStackTrace();
}
catch (ReadOnlyFileException e) {
e.printStackTrace();
}
catch (InvalidAudioFrameException e) {
e.printStackTrace();
}
}
cueTrack.setPerformer(performer);
cueTrack.setTitle(songTitle);
cueTrack.getIndices().add(new Index(position));
cueSheet.getTracks().add(cueTrack);
Marker outroAnchor=new LinkedList<Marker>(mmpTrack.getMarkers(Marker.OUTRO_RANGE)).getLast();
Marker introAnchor=new LinkedList<Marker>(mmpTrack.getMarkers(Marker.INTRO_RANGE)).getLast();
position+=(outroAnchor.getPosition() - introAnchor.getPosition()) / 1000000.0;
break;
}
}
return cueSheet;
}