Program: 10238
Project: 10238
Buggy source:
@Override public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException {
  List<Comparable> comparables=new ArrayList<Comparable>();
  comparables.add(new Comparable());
  boolean buildingComparables=true;
  TreeMap<Integer,ArrayList<String>> thenOutcome=new TreeMap<Integer,ArrayList<String>>();
  TreeMap<Integer,ArrayList<String>> elseOutcome=new TreeMap<Integer,ArrayList<String>>();
  boolean insideElse=false;
  boolean usedOperator=false;
  boolean newCommand=false;
  int bracketsEntered=0;
  List<aH.Argument> OriginalArguments=aH.interpret(scriptEntry.getOriginalArguments());
  List<aH.Argument> Arguments=aH.interpret(scriptEntry.getArguments());
  for (int i=0; i < Arguments.size(); i++) {
    aH.Argument arg=Arguments.get(i);
    aH.Argument originalArg=OriginalArguments.get(i);
    if (buildingComparables) {
      if (arg.startsWith("String_Node_Str")) {
        comparables.get(comparables.size() - 1).setNegativeLogic();
        if (arg.getValue().length() == 1)         continue;
        if (arg.startsWith("String_Node_Str"))         arg.replaceValue("String_Node_Str");
 else         arg.replaceValue(arg.getValue().substring(1));
      }
      if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
      if (arg.matchesEnum(Comparable.Bridge.values())) {
        comparables.add(new Comparable());
        comparables.get(comparables.size() - 1).bridge=Comparable.Bridge.valueOf(arg.getValue().toUpperCase());
      }
 else       if (arg.matchesEnum(Comparable.Operator.values())) {
        comparables.get(comparables.size() - 1).operator=Comparable.Operator.valueOf(arg.getValue().toUpperCase());
        usedOperator=true;
      }
 else       if (comparables.get(comparables.size() - 1).comparable == null) {
        comparables.get(comparables.size() - 1).setComparable(arg.getValue());
      }
 else       if (!usedOperator && arg.matches("String_Node_Str")) {
        buildingComparables=false;
      }
 else       if (!usedOperator && denizen.getCommandRegistry().get(arg.getValue().replace("String_Node_Str","String_Node_Str")) != null) {
        buildingComparables=false;
      }
 else {
        comparables.get(comparables.size() - 1).setComparedto(arg.getValue());
        usedOperator=false;
      }
    }
    if (!buildingComparables) {
      if (arg.matches("String_Node_Str") && bracketsEntered < 2) {
        newCommand=true;
      }
 else       if (!insideElse) {
        if (arg.matches("String_Node_Str") && bracketsEntered == 0) {
          insideElse=true;
        }
 else         if (arg.matches("String_Node_Str")) {
          bracketsEntered++;
          if (bracketsEntered > 1) {
            thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (arg.matches("String_Node_Str")) {
          bracketsEntered--;
          if (bracketsEntered > 0) {
            thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (newCommand || thenOutcome.size() == 0) {
          thenOutcome.put(thenOutcome.size(),new ArrayList<String>());
          thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
          newCommand=false;
        }
 else {
          thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
        }
      }
 else       if (insideElse) {
        if (arg.matches("String_Node_Str")) {
          bracketsEntered++;
          if (bracketsEntered > 1) {
            elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (arg.matches("String_Node_Str")) {
          bracketsEntered--;
          if (bracketsEntered > 0) {
            elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (newCommand || elseOutcome.size() == 0) {
          newCommand=false;
          if (arg.matches("String_Node_Str") && elseOutcome.size() == 0) {
            bracketsEntered++;
          }
          elseOutcome.put(elseOutcome.size(),new ArrayList<String>());
          elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
        }
 else {
          elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
        }
      }
    }
  }
  scriptEntry.addObject("String_Node_Str",comparables).addObject("String_Node_Str",thenOutcome).addObject("String_Node_Str",elseOutcome);
}

Fixed version (ground truth):
@Override public void parseArgs(ScriptEntry scriptEntry) throws InvalidArgumentsException {
  List<Comparable> comparables=new ArrayList<Comparable>();
  comparables.add(new Comparable());
  boolean buildingComparables=true;
  TreeMap<Integer,ArrayList<String>> thenOutcome=new TreeMap<Integer,ArrayList<String>>();
  TreeMap<Integer,ArrayList<String>> elseOutcome=new TreeMap<Integer,ArrayList<String>>();
  boolean insideElse=false;
  boolean usedOperator=false;
  boolean newCommand=false;
  int bracketsEntered=0;
  List<aH.Argument> OriginalArguments=aH.interpret(scriptEntry.getOriginalArguments());
  List<aH.Argument> Arguments=aH.interpret(scriptEntry.getArguments());
  for (int i=0; i < Arguments.size(); i++) {
    aH.Argument arg=Arguments.get(i);
    aH.Argument originalArg=OriginalArguments.get(i);
    if (buildingComparables) {
      if (arg.startsWith("String_Node_Str")) {
        comparables.get(comparables.size() - 1).setNegativeLogic();
        if (arg.getValue().length() == 1)         continue;
        if (arg.startsWith("String_Node_Str"))         arg.replaceValue("String_Node_Str");
 else         arg.replaceValue(arg.getValue().substring(1));
      }
      if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
 else       if (arg.getValue().equals("String_Node_Str"))       arg.replaceValue("String_Node_Str");
      if (arg.matchesEnum(Comparable.Bridge.values())) {
        comparables.add(new Comparable());
        comparables.get(comparables.size() - 1).bridge=Comparable.Bridge.valueOf(arg.getValue().toUpperCase());
      }
 else       if (arg.matchesEnum(Comparable.Operator.values())) {
        comparables.get(comparables.size() - 1).operator=Comparable.Operator.valueOf(arg.getValue().toUpperCase());
        usedOperator=true;
      }
 else       if (comparables.get(comparables.size() - 1).comparable == null) {
        comparables.get(comparables.size() - 1).setComparable(arg.getValue());
      }
 else       if (!usedOperator && arg.matches("String_Node_Str")) {
        buildingComparables=false;
      }
 else       if (!usedOperator && denizen.getCommandRegistry().get(arg.getValue().replace("String_Node_Str","String_Node_Str")) != null) {
        buildingComparables=false;
      }
 else {
        comparables.get(comparables.size() - 1).setComparedto(arg.getValue());
        usedOperator=false;
      }
    }
    if (!buildingComparables) {
      if (arg.matches("String_Node_Str") && bracketsEntered < 2) {
        newCommand=true;
      }
 else       if (!insideElse) {
        if (arg.matches("String_Node_Str") && bracketsEntered == 0) {
          insideElse=true;
        }
 else         if (arg.matches("String_Node_Str")) {
          bracketsEntered++;
          if (bracketsEntered > 1) {
            thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (arg.matches("String_Node_Str")) {
          bracketsEntered--;
          if (bracketsEntered > 0) {
            thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (newCommand || thenOutcome.size() == 0) {
          thenOutcome.put(thenOutcome.size(),new ArrayList<String>());
          thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
          newCommand=false;
        }
 else {
          thenOutcome.get(thenOutcome.lastKey()).add(originalArg.raw_value);
        }
      }
 else       if (insideElse) {
        if (arg.matches("String_Node_Str")) {
          bracketsEntered++;
          if (bracketsEntered > 1) {
            elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (arg.matches("String_Node_Str")) {
          bracketsEntered--;
          if (bracketsEntered > 0) {
            elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
          }
        }
 else         if (newCommand || elseOutcome.size() == 0) {
          newCommand=false;
          if (arg.matches("String_Node_Str") && elseOutcome.size() == 0 && bracketsEntered < 1) {
            bracketsEntered++;
          }
          elseOutcome.put(elseOutcome.size(),new ArrayList<String>());
          elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
        }
 else {
          elseOutcome.get(elseOutcome.lastKey()).add(originalArg.raw_value);
        }
      }
    }
  }
  scriptEntry.addObject("String_Node_Str",comparables).addObject("String_Node_Str",thenOutcome).addObject("String_Node_Str",elseOutcome);
}