Program: 75526
Project: 75526
Buggy source:
/** 
 * Test the meta-data parser for class definition.
 */
public void testMethodsWithDifferentArgumentLists(){
  MetaDataDictionary dd=MetaDataDictionary.getInstance();
  assertEquals(13,dd.getClasses().size());
  IClassInfo classInfo=dd.getClass("String_Node_Str");
  IMethodInfo constructor=classInfo.getConstructor();
  assertNotNull(constructor);
  Iterator argumentList=constructor.argumentListIterator();
  assertTrue(argumentList.hasNext());
  Iterator arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(argumentList.hasNext());
  classInfo=dd.getClass("String_Node_Str");
  IMethodInfo method=classInfo.getMethod("String_Node_Str");
  argumentList=method.argumentListIterator();
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  ArgumentInfo argument=(ArgumentInfo)arguments.next();
  assertEquals("String_Node_Str",argument.getType());
  assertTrue(arguments.hasNext());
  arguments.next();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  argument=(ArgumentInfo)arguments.next();
  assertEquals("String_Node_Str",argument.getType());
  assertTrue(arguments.hasNext());
  arguments.next();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  argument=(ArgumentInfo)arguments.next();
  assertEquals("String_Node_Str",argument.getType());
  assertTrue(arguments.hasNext());
  arguments.next();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(arguments.hasNext());
  assertFalse(argumentList.hasNext());
}

Fixed version (ground truth):
/** 
 * Test the meta-data parser for class definition.
 */
public void testMethodsWithDifferentArgumentLists(){
  MetaDataDictionary dd=MetaDataDictionary.getInstance();
  assertEquals(13,dd.getClasses().size());
  IClassInfo classInfo=dd.getClass("String_Node_Str");
  IMethodInfo constructor=classInfo.getConstructor();
  assertNotNull(constructor);
  Iterator argumentList=constructor.argumentListIterator();
  assertTrue(argumentList.hasNext());
  Iterator arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertTrue(arguments.hasNext());
  arguments.next();
  assertFalse(argumentList.hasNext());
  classInfo=dd.getClass("String_Node_Str");
  IMethodInfo method=classInfo.getMethod("String_Node_Str");
  argumentList=method.argumentListIterator();
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  ArgumentInfo argument=(ArgumentInfo)arguments.next();
  assertEquals("String_Node_Str",argument.getType());
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  argument=(ArgumentInfo)arguments.next();
  assertEquals("String_Node_Str",argument.getType());
  assertFalse(arguments.hasNext());
  arguments=((ArgumentInfoList)argumentList.next()).argumentsIterator();
  assertTrue(arguments.hasNext());
  argument=(ArgumentInfo)arguments.next();
  assertEquals("String_Node_Str",argument.getType());
  assertFalse(arguments.hasNext());
  assertFalse(argumentList.hasNext());
}