Program: 36655
Project: 36655
Buggy source:
private Route route() throws Exception {
  String classMethodFull=t.sval;
  t.next();
  if (t.ttype != '(') {
    throw new Exception("String_Node_Str" + (t.ttype >= 0 ? (char)t.ttype : ' '));
  }
  t.next();
  List<RouteParameter> parameters=new ArrayList<>();
  for (; ; ) {
    if (t.ttype == ')') {
      t.next();
      break;
    }
    parameters.add(parameter());
    if (t.ttype == ',') {
      t.next();
    }
  }
  Class[] classes=new Class[parameters.size() + 1];
  classes[0]=Context.class;
  for (int i=1; i < classes.length; i++) {
    classes[i]=getClassTypeBySimpleName(parameters.get(i - 1).getDataType());
  }
  if (classMethodFull.trim().isEmpty()) {
    throw new Exception("String_Node_Str");
  }
  int lio=classMethodFull.lastIndexOf('.');
  String className="String_Node_Str";
  String classMethod;
  if (lio < 0) {
    classMethod=classMethodFull;
switch (classMethod) {
case "String_Node_Str":
      return new Route(tryGetMethod(defaultController,"String_Node_Str",classes),parameters);
case "String_Node_Str":
    return new Route(tryGetMethod(defaultController,"String_Node_Str",classes),parameters);
case "String_Node_Str":
  return new Route(tryGetMethod(defaultController,"String_Node_Str",classes),parameters);
}
}
className=classMethodFull.substring(0,lio);
classMethod=classMethodFull.substring(lio + 1);
Class c;
Method m;
for (String use : uses) {
if ((c=tryLoadClass(className.isEmpty() ? use : use + "String_Node_Str" + className)) != null) {
if ((m=tryGetMethod(c,classMethod,classes)) != null) {
  return new Route(m,parameters);
}
}
}
throw new Exception("String_Node_Str" + className + "String_Node_Str"+ classMethod);
}

Fixed version (ground truth):
private Route route() throws RoutesMapLoadException {
  String classMethodFull=t.sval;
  t.next();
  if (t.ttype != '(') {
    throw new RoutesMapLoadException("String_Node_Str" + (t.ttype >= 0 ? (char)t.ttype : ' '));
  }
  t.next();
  List<RouteParameter> parameters=new ArrayList<>();
  for (; ; ) {
    if (t.ttype == ')') {
      t.next();
      break;
    }
    parameters.add(parameter());
    if (t.ttype == ',') {
      t.next();
    }
  }
  Class[] classes=new Class[parameters.size() + 1];
  classes[0]=Context.class;
  for (int i=1; i < classes.length; i++) {
    try {
      classes[i]=getClassTypeBySimpleName(parameters.get(i - 1).getDataType());
    }
 catch (    ClassNotFoundException ex) {
      throw new RoutesMapLoadException(ex);
    }
  }
  if (classMethodFull.trim().isEmpty()) {
    throw new RoutesMapLoadException("String_Node_Str");
  }
  int lio=classMethodFull.lastIndexOf('.');
  String className="String_Node_Str";
  String classMethod;
  if (lio < 0) {
    classMethod=classMethodFull;
switch (classMethod) {
case "String_Node_Str":
      return new Route(tryGetMethod(defaultController,"String_Node_Str",classes),parameters);
case "String_Node_Str":
    return new Route(tryGetMethod(defaultController,"String_Node_Str",classes),parameters);
case "String_Node_Str":
  return new Route(tryGetMethod(defaultController,"String_Node_Str",classes),parameters);
}
}
className=classMethodFull.substring(0,lio);
classMethod=classMethodFull.substring(lio + 1);
Class c;
Method m;
for (String use : uses) {
if ((c=tryLoadClass(className.isEmpty() ? use : use + "String_Node_Str" + className)) != null) {
if ((m=tryGetMethod(c,classMethod,classes)) != null) {
  return new Route(m,parameters);
}
}
}
throw new RoutesMapLoadException("String_Node_Str" + className + "String_Node_Str"+ classMethod);
}