code: private void trySetDefault(Object bean1) throws IllegalAccessError {
          try {
              doSetDefault(bean1);
          } catch (IllegalAccessException ex) {
              try {
                  // try again
                  f.setAccessible(true);
                  doSetDefault(bean1);
              }catch (IllegalAccessException ex1) {
                  throw new IllegalAccessError(ex1.getMessage());
              }
          }
      }
docs: Remember default so we throw away the default when adding user values.