Program: 76180
Project: 76180
Buggy source:
protected void _readClassInfo() throws IOException {
  StringTokenizer strTokenizer;
  String className;
  String marker;
  do {
    if ((_lastLine != null) && (_lastLine.length() > 4) && !(_lastLine.startsWith("String_Node_Str"))) {
      strTokenizer=new StringTokenizer(_lastLine);
      className=strTokenizer.nextToken();
      ApplicationUtility.trace("String_Node_Str" + className);
      try {
        _typeList.addLast(className);
      }
 catch (      NullPointerException e) {
        System.err.println("String_Node_Str" + _lastLine);
        return;
      }
      String nextToken=strTokenizer.nextToken();
      boolean isSingleton;
      boolean isInterface;
      try {
        isSingleton=nextToken.startsWith("String_Node_Str");
        _isSingletonList.addLast(new Boolean(isSingleton));
        _isConcreteList.addLast(new Boolean(isSingleton || nextToken.startsWith("String_Node_Str")));
        isInterface=nextToken.startsWith("String_Node_Str");
        _isInterfaceList.addLast(new Boolean(isInterface));
        _isInTreeList.addLast(new Boolean(!nextToken.endsWith("String_Node_Str")));
      }
 catch (      NullPointerException e) {
        System.err.println("String_Node_Str" + _lastLine);
        return;
      }
      try {
        nextToken=strTokenizer.nextToken();
        _parentTypeList.addLast(nextToken);
      }
 catch (      NullPointerException e) {
        System.err.println("String_Node_Str" + _lastLine);
        return;
      }
      LinkedList methodList=new LinkedList();
      LinkedList implList=new LinkedList();
      if (isSingleton) {
        ClassField cf=new ClassField(className,"String_Node_Str","String_Node_Str","String_Node_Str" + className + "String_Node_Str");
        methodList.addLast(cf);
        MethodSignature ms=new MethodSignature(className);
        methodList.addLast(ms);
      }
      while (strTokenizer.hasMoreTokens()) {
        marker=strTokenizer.nextToken();
        char markChar=marker.charAt(0);
switch (markChar) {
case 'c':
case 'm':
{
            MethodSignature ms=new MethodSignature(markChar,strTokenizer,className,_defaultPlacement,isInterface);
            methodList.addLast(ms);
          }
        break;
case 'k':
{
        MethodSignature ms=new MethodSignature(markChar,strTokenizer,className,_defaultPlacement,isInterface);
        methodList.addLast(ms);
        LinkedList accessorMethodList=ms.accessors();
        methodList.addAll(accessorMethodList);
      }
    break;
case 'i':
{
    boolean isName;
    do {
      nextToken=strTokenizer.nextToken();
      isName=((nextToken != null) && !nextToken.equals("String_Node_Str"));
      if (isName) {
        implList.addLast(nextToken);
      }
    }
 while (isName);
  }
break;
default :
throw new RuntimeException("String_Node_Str" + marker);
}
}
_methodListList.addLast(methodList);
_implListList.addLast(implList);
}
_lastLine=_ifs.readLine();
}
 while (_lastLine != null);
}

Fixed version (ground truth):
protected void _readClassInfo() throws IOException {
  StringTokenizer strTokenizer;
  String className;
  String marker;
  do {
    if ((_lastLine != null) && (_lastLine.length() > 4) && !(_lastLine.startsWith("String_Node_Str"))) {
      strTokenizer=new StringTokenizer(_lastLine);
      className=strTokenizer.nextToken();
      ApplicationUtility.trace("String_Node_Str" + className);
      try {
        _typeList.addLast(className);
      }
 catch (      NullPointerException e) {
        System.err.println("String_Node_Str" + _lastLine);
        return;
      }
      String nextToken=strTokenizer.nextToken();
      boolean isSingleton;
      boolean isInterface;
      try {
        isSingleton=nextToken.startsWith("String_Node_Str");
        _isSingletonList.addLast(new Boolean(isSingleton));
        _isConcreteList.addLast(new Boolean(isSingleton || nextToken.startsWith("String_Node_Str")));
        isInterface=nextToken.startsWith("String_Node_Str");
        _isInterfaceList.addLast(new Boolean(isInterface));
        _isInTreeList.addLast(new Boolean(!nextToken.endsWith("String_Node_Str")));
      }
 catch (      NullPointerException e) {
        System.err.println("String_Node_Str" + _lastLine);
        return;
      }
      try {
        nextToken=strTokenizer.nextToken();
        _parentTypeList.addLast(nextToken);
      }
 catch (      NullPointerException e) {
        System.err.println("String_Node_Str" + _lastLine);
        return;
      }
      LinkedList methodList=new LinkedList();
      LinkedList implList=new LinkedList();
      while (strTokenizer.hasMoreTokens()) {
        marker=strTokenizer.nextToken();
        char markChar=marker.charAt(0);
switch (markChar) {
case 'c':
case 'm':
{
            MethodSignature ms=new MethodSignature(markChar,strTokenizer,className,_defaultPlacement,isInterface);
            methodList.addLast(ms);
          }
        break;
case 'k':
{
        MethodSignature ms=new MethodSignature(markChar,strTokenizer,className,_defaultPlacement,isInterface);
        methodList.addLast(ms);
        LinkedList accessorMethodList=ms.accessors();
        methodList.addAll(accessorMethodList);
      }
    break;
case 'i':
{
    boolean isName;
    do {
      nextToken=strTokenizer.nextToken();
      isName=((nextToken != null) && !nextToken.equals("String_Node_Str"));
      if (isName) {
        implList.addLast(nextToken);
      }
    }
 while (isName);
  }
break;
default :
throw new RuntimeException("String_Node_Str" + marker);
}
}
_methodListList.addLast(methodList);
_implListList.addLast(implList);
}
_lastLine=_ifs.readLine();
}
 while (_lastLine != null);
}