docs: @Override
    public final Field retrieveField(final Class<?> pClazz,
      final String pFieldName) throws Exception {
      for (Field fld : pClazz.getDeclaredFields()) {
        if (fld.getName().equals(pFieldName)) {
          return fld;
        }
      }
      final Class<?> superClazz = pClazz.getSuperclass();
      Field field = null;
      if (superClazz != null && superClazz != java.lang.Object.class) {
        field = retrieveField(superClazz, pFieldName);
      }
      if (field == null) {
        throw new Exception("There is no field " + pFieldName + " in class "
          + pClazz); //TO-DO class must be original
      }
      return field;
    }