Program: 91182
Project: 91182
Buggy source:
public static SymbolType findFieldType(SymbolTable symTable,SymbolType scope,String fieldName){
  SymbolType result=null;
  if (scope != null) {
    List<Class<?>> classes=scope.getBoundClasses();
    Iterator<Class<?>> it=classes.iterator();
    while (it.hasNext() && result == null) {
      try {
        Class<?> clazz=it.next();
        Field field=null;
        if (scope.getArrayCount() > 0 && fieldName.equals("String_Node_Str")) {
          result=new SymbolType("String_Node_Str");
        }
 else {
          try {
            field=clazz.getDeclaredField(fieldName);
          }
 catch (          NoSuchFieldException fe) {
            field=getField0(clazz.getPackage(),clazz,fieldName);
            if (field == null) {
              SymbolType st=symTable.getType("String_Node_Str");
              Class<?> internal=ClassInspector.findClassMember(st.getClazz().getPackage(),fieldName,clazz);
              if (internal != null) {
                result=new SymbolType(internal);
              }
            }
          }
          if (result == null) {
            Map<String,SymbolType> typeMapping=new HashMap<String,SymbolType>();
            GenericBuilderFromGenericClasses builder=new GenericBuilderFromGenericClasses(clazz,scope.getParameterizedTypes());
            builder.build(typeMapping);
            result=SymbolType.valueOf(field.getGenericType(),typeMapping);
            result.setField(field);
          }
        }
      }
 catch (      Exception e) {
        throw new NoSuchExpressionTypeException(e);
      }
    }
  }
  return result;
}

Fixed version (ground truth):
public static SymbolType findFieldType(SymbolTable symTable,SymbolType scope,String fieldName){
  SymbolType result=null;
  if (scope != null) {
    List<Class<?>> classes=scope.getBoundClasses();
    Iterator<Class<?>> it=classes.iterator();
    while (it.hasNext() && result == null) {
      try {
        Class<?> clazz=it.next();
        Field field=null;
        if (scope.getArrayCount() > 0 && fieldName.equals("String_Node_Str")) {
          result=new SymbolType("String_Node_Str");
        }
 else {
          try {
            field=clazz.getDeclaredField(fieldName);
          }
 catch (          NoSuchFieldException fe) {
            field=getField0(clazz.getPackage(),clazz,fieldName);
            if (field == null) {
              SymbolType st=symTable.getType("String_Node_Str");
              Class<?> internal=ClassInspector.findClassMember(st.getClazz().getPackage(),fieldName,clazz);
              if (internal != null) {
                result=new SymbolType(internal);
              }
            }
          }
          if (result == null && field != null) {
            Map<String,SymbolType> typeMapping=new HashMap<String,SymbolType>();
            GenericBuilderFromGenericClasses builder=new GenericBuilderFromGenericClasses(clazz,scope.getParameterizedTypes());
            builder.build(typeMapping);
            result=SymbolType.valueOf(field.getGenericType(),typeMapping);
            result.setField(field);
          }
        }
      }
 catch (      Exception e) {
        throw new NoSuchExpressionTypeException(e);
      }
    }
  }
  if (result == null) {
    throw new RuntimeException("String_Node_Str" + fieldName + "String_Node_Str");
  }
  return result;
}