docs: public static Field getField(String fieldName, Class<?> clazz) {
      Field field = null;
      try {
        field = clazz.getDeclaredField(fieldName);
      }
      catch (SecurityException e) {
        throw LOG.unableToAccessField(field, clazz.getName());
      }
      catch (NoSuchFieldException e) {
        // for some reason getDeclaredFields doesnt search superclasses
        // (which getFields() does ... but that gives only public fields)
        Class<?> superClass = clazz.getSuperclass();
        if (superClass != null) {
          return getField(fieldName, superClass);
        }
      }
      return field;
    }