Program: 53517
Project: 53517
Buggy source:
public void testTwo(){
  CollectClassData cd=collect(Two.class);
  assertEquals(Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC,cd.getAccess() & ~Opcodes.ACC_SUPER);
  assertEquals(ClassType.Nested,cd.getClassType());
  List<CollectFieldData> fields=cd.getFields();
  assertEquals(2,fields.size());
  CollectFieldData field=fields.get(0);
  assertEquals("String_Node_Str",field.getName());
  assertEquals("String_Node_Str",field.getDesc());
  List<CollectAnnotationData> annotations=field.getAnnotations();
  assertEquals(0,annotations.size());
  field=fields.get(1);
  assertEquals("String_Node_Str",field.getName());
  assertEquals("String_Node_Str",field.getDesc());
  annotations=field.getAnnotations();
  assertEquals(1,annotations.size());
  AnnotationData annotation=annotations.get(0).getAnnotation();
  assertEquals("String_Node_Str",annotation.getDesc());
  assertEquals("String_Node_Str",annotation.getValues().get("String_Node_Str"));
  assertEquals(0,cd.getInterfaceInternalNames().length);
  annotations=cd.getAnnotations();
  assertEquals(1,annotations.size());
  annotation=annotations.get(0).getAnnotation();
  assertEquals("String_Node_Str",annotation.getDesc());
  assertEquals(Byte.valueOf((byte)42),annotation.getValues().get("String_Node_Str"));
  assertEquals(42,annotation.getValues().get("String_Node_Str"));
  assertEquals("String_Node_Str",cd.getSuperInternalName());
  assertEquals("String_Node_Str",cd.getNestedSourceName());
  List<CollectMethodData> methods=cd.getMethods();
  assertEquals(3,methods.size());
  CollectMethodData method=methods.get(0);
  Type[] argTypes=method.getArgTypes();
  String[] argNames=method.getArgNames();
  assertEquals("String_Node_Str",method.getName());
  assertEquals(1,argTypes.length);
  assertEquals(1,argNames.length);
  assertEquals(1,method.getArgAnnotations().length);
  assertEquals(0,method.getAnnotations().size());
  assertEquals(0,method.getExceptions().length);
  method=methods.get(1);
  argTypes=method.getArgTypes();
  argNames=method.getArgNames();
  assertEquals("String_Node_Str",method.getName());
  assertEquals(1,argTypes.length);
  assertEquals("String_Node_Str",argTypes[0].getClassName());
  assertEquals(1,argNames.length);
  assertEquals("String_Node_Str",argNames[0]);
  assertEquals(1,method.getArgAnnotations().length);
  assertEquals(0,method.getArgAnnotations()[0].size());
  assertEquals(1,method.getAnnotations().size());
  assertEquals(1,method.getExceptions().length);
  method=methods.get(2);
  argTypes=method.getArgTypes();
  argNames=method.getArgNames();
  assertEquals("String_Node_Str",method.getName());
  assertEquals(2,argTypes.length);
  assertEquals("String_Node_Str",argTypes[0].getClassName());
  assertEquals("String_Node_Str",argTypes[1].getClassName());
  assertEquals(2,argNames.length);
  assertEquals("String_Node_Str",argNames[0]);
  assertEquals("String_Node_Str",argNames[1]);
  assertEquals(2,method.getArgAnnotations().length);
  assertEquals(0,method.getArgAnnotations()[0].size());
  assertEquals(0,method.getArgAnnotations()[1].size());
  assertEquals(0,method.getAnnotations().size());
  assertEquals(0,method.getExceptions().length);
}

Fixed version (ground truth):
public void testTwo(){
  CollectClassData cd=collect(Two.class);
  assertEquals(Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC,cd.getAccess() & ~Opcodes.ACC_SUPER);
  assertEquals(ClassType.Nested,cd.getClassType());
  List<CollectFieldData> fields=cd.getFields();
  assertEquals(2,fields.size());
  CollectFieldData field=fields.get(0);
  assertEquals("String_Node_Str",field.getName());
  assertEquals("String_Node_Str",field.getDesc());
  List<CollectAnnotationData> annotations=field.getAnnotations();
  assertEquals(0,annotations.size());
  field=fields.get(1);
  assertEquals("String_Node_Str",field.getName());
  assertEquals("String_Node_Str",field.getDesc());
  annotations=field.getAnnotations();
  assertEquals(1,annotations.size());
  AnnotationData annotation=annotations.get(0).getAnnotation();
  assertEquals("String_Node_Str",annotation.getDesc());
  assertEquals("String_Node_Str",annotation.getValues().get("String_Node_Str"));
  assertEquals(0,cd.getInterfaceInternalNames().length);
  annotations=cd.getAnnotations();
  assertEquals(1,annotations.size());
  annotation=annotations.get(0).getAnnotation();
  assertEquals("String_Node_Str",annotation.getDesc());
  assertEquals(Byte.valueOf((byte)42),annotation.getValues().get("String_Node_Str"));
  assertEquals(42,annotation.getValues().get("String_Node_Str"));
  assertEquals("String_Node_Str",cd.getSuperInternalName());
  assertEquals("String_Node_Str",cd.getNestedSourceName());
  List<CollectMethodData> methods=cd.getMethods();
  assertEquals(3,methods.size());
  CollectMethodData method=methods.get(0);
  Type[] argTypes=method.getArgTypes();
  String[] argNames=method.getArgNames();
  assertEquals("String_Node_Str",method.getName());
  assertEquals(1,argTypes.length);
  assertEquals(1,argNames.length);
  assertEquals(1,method.getArgAnnotations().length);
  assertEquals(0,method.getAnnotations().size());
  assertEquals(0,method.getExceptions().length);
  method=methods.get(1);
  argTypes=method.getArgTypes();
  argNames=method.getArgNames();
  assertEquals("String_Node_Str",method.getName());
  assertEquals(1,argTypes.length);
  assertEquals("String_Node_Str",argTypes[0].getClassName());
  assertEquals(1,argNames.length);
  assertEquals("String_Node_Str",argNames[0]);
  assertEquals(1,method.getArgAnnotations().length);
  assertEquals(0,method.getArgAnnotations()[0].size());
  assertEquals(1,method.getAnnotations().size());
  assertEquals(1,method.getExceptions().length);
  method=methods.get(2);
  argTypes=method.getArgTypes();
  argNames=method.getArgNames();
  assertEquals("String_Node_Str",method.getName());
  assertEquals(2,argTypes.length);
  assertEquals("String_Node_Str",argTypes[0].getClassName());
  assertEquals("String_Node_Str",argTypes[1].getClassName());
  assertEquals(2,argNames.length);
  assertEquals("String_Node_Str",argNames[0]);
  assertEquals("String_Node_Str",argNames[1]);
  assertEquals(2,method.getArgAnnotations().length);
  assertEquals(0,method.getArgAnnotations()[0].size());
  assertEquals(0,method.getArgAnnotations()[1].size());
  assertEquals(0,method.getAnnotations().size());
  assertEquals(0,method.getExceptions().length);
}