Program: 88817
Project: 88817
Buggy source:
public boolean parse(String[] argv){
  for (int i=argv.length; i > 0; i--) {
    pushOptions(argv[i - 1]);
  }
  while (hasMoreOptions()) {
    String option=nextOption();
    if (option.charAt(0) != '-') {
      classes.add(option);
      continue;
    }
    while (option.charAt(0) == '-') {
      option=option.substring(1);
    }
    if (false)     ;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     help=true;
 else     if (false || option.equals("String_Node_Str"))     version=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     verbose=true;
 else     if (false || option.equals("String_Node_Str"))     app=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     whole_program=true;
 else     if (false || option.equals("String_Node_Str"))     debug=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (soot_classpath.length() == 0)       soot_classpath=value;
 else {
        G.v().out.println("String_Node_Str" + soot_classpath + "String_Node_Str"+ value+ "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (false)       ;
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (src_prec != 0 && src_prec != src_prec_class) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        src_prec=src_prec_class;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (src_prec != 0 && src_prec != src_prec_jimple) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        src_prec=src_prec_jimple;
      }
 else {
        G.v().out.println("String_Node_Str" + value + "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str"))     allow_phantom_refs=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (output_dir.length() == 0)       output_dir=value;
 else {
        G.v().out.println("String_Node_Str" + output_dir + "String_Node_Str"+ value+ "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (false)       ;
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_jimp) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_jimp;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_jimple) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_jimple;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_baf) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_baf;
      }
 else       if (false || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_b) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_b;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_grimp) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_grimp;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_grimple) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_grimple;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_xml) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_xml;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_none) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_none;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_jasmin) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_jasmin;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_class) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_class;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_dava) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_dava;
      }
 else {
        G.v().out.println("String_Node_Str" + value + "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str"))     via_grimp=true;
 else     if (false || option.equals("String_Node_Str"))     xml_attributes=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String phaseName=nextOption();
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option + "String_Node_Str"+ phaseName);
        return false;
      }
      String phaseOption=nextOption();
      if (!setPhaseOption(phaseName,phaseOption))       return false;
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str"))     via_shimple=true;
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (process_path == null)       process_path=new LinkedList();
      process_path.add(value);
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (include == null)       include=new LinkedList();
      include.add(value);
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (exclude == null)       exclude=new LinkedList();
      exclude.add(value);
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (dynamic_classes == null)       dynamic_classes=new LinkedList();
      dynamic_classes.add(value);
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (dynamic_path == null)       dynamic_path=new LinkedList();
      dynamic_path.add(value);
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (dynamic_package == null)       dynamic_package=new LinkedList();
      dynamic_package.add(value);
    }
 else     if (false || option.equals("String_Node_Str"))     keep_line_number=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     keep_offset=true;
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str"))     time=true;
 else     if (false || option.equals("String_Node_Str"))     subtract_gc=true;
 else {
      G.v().out.println("String_Node_Str" + option);
      return false;
    }
  }
  return true;
}

Fixed version (ground truth):
public boolean parse(String[] argv){
  for (int i=argv.length; i > 0; i--) {
    pushOptions(argv[i - 1]);
  }
  while (hasMoreOptions()) {
    String option=nextOption();
    if (option.charAt(0) != '-') {
      classes.add(option);
      continue;
    }
    while (option.charAt(0) == '-') {
      option=option.substring(1);
    }
    if (false)     ;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     help=true;
 else     if (false || option.equals("String_Node_Str"))     version=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     verbose=true;
 else     if (false || option.equals("String_Node_Str"))     app=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     whole_program=true;
 else     if (false || option.equals("String_Node_Str"))     debug=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")|| option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (soot_classpath.length() == 0)       soot_classpath=value;
 else {
        G.v().out.println("String_Node_Str" + soot_classpath + "String_Node_Str"+ value+ "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (false)       ;
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (src_prec != 0 && src_prec != src_prec_class) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        src_prec=src_prec_class;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (src_prec != 0 && src_prec != src_prec_jimple) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        src_prec=src_prec_jimple;
      }
 else {
        G.v().out.println("String_Node_Str" + value + "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str"))     allow_phantom_refs=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (output_dir.length() == 0)       output_dir=value;
 else {
        G.v().out.println("String_Node_Str" + output_dir + "String_Node_Str"+ value+ "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (false)       ;
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_jimp) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_jimp;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_jimple) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_jimple;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_baf) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_baf;
      }
 else       if (false || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_b) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_b;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_grimp) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_grimp;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_grimple) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_grimple;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_xml) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_xml;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_none) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_none;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_jasmin) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_jasmin;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_class) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_class;
      }
 else       if (false || value.equals("String_Node_Str") || value.equals("String_Node_Str")) {
        if (output_format != 0 && output_format != output_format_dava) {
          G.v().out.println("String_Node_Str" + option);
          return false;
        }
        output_format=output_format_dava;
      }
 else {
        G.v().out.println("String_Node_Str" + value + "String_Node_Str"+ option);
        return false;
      }
    }
 else     if (false || option.equals("String_Node_Str"))     via_grimp=true;
 else     if (false || option.equals("String_Node_Str"))     xml_attributes=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String phaseName=nextOption();
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option + "String_Node_Str"+ phaseName);
        return false;
      }
      String phaseOption=nextOption();
      if (!setPhaseOption(phaseName,phaseOption))       return false;
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str"))     via_shimple=true;
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (process_path == null)       process_path=new LinkedList();
      process_path.add(value);
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (include == null)       include=new LinkedList();
      include.add(value);
    }
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (exclude == null)       exclude=new LinkedList();
      exclude.add(value);
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (dynamic_classes == null)       dynamic_classes=new LinkedList();
      dynamic_classes.add(value);
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (dynamic_path == null)       dynamic_path=new LinkedList();
      dynamic_path.add(value);
    }
 else     if (false || option.equals("String_Node_Str")) {
      if (!hasMoreOptions()) {
        G.v().out.println("String_Node_Str" + option);
        return false;
      }
      String value=nextOption();
      if (dynamic_package == null)       dynamic_package=new LinkedList();
      dynamic_package.add(value);
    }
 else     if (false || option.equals("String_Node_Str"))     keep_line_number=true;
 else     if (false || option.equals("String_Node_Str") || option.equals("String_Node_Str"))     keep_offset=true;
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str")) {
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
      pushOptions("String_Node_Str");
    }
 else     if (false || option.equals("String_Node_Str"))     time=true;
 else     if (false || option.equals("String_Node_Str"))     subtract_gc=true;
 else {
      G.v().out.println("String_Node_Str" + option);
      return false;
    }
  }
  return true;
}