Uploaded image for project: 'WildFly Core'
  1. WildFly Core
  2. WFCORE-2249

ObjectTypeValidator only validates fields the user provides

    XMLWordPrintable

Details

    Description

      This in ObjectTypeValidator is wrong:

      
          @Override
          public void validateParameter(final String parameterName, final ModelNode value) throws OperationFailedException {
              super.validateParameter(parameterName, value);
              if (value.isDefined()) {
                  for (String key : value.keys()) {
                      if (allowedValues.containsKey(key)) {
                          allowedValues.get(key).getValidator().validateParameter(key, value.get(key));
                      } else {
                          throw ROOT_LOGGER.invalidKeyForObjectType(key, parameterName);
                      }
                  }
              }
          }
      

      1) It only iterates over the keys in 'value' so if value is missing any required fields that isn't detected.
      2) It's not really appropriate to reject keys that are not part of the definition. The management code is meant to be forgiving in such cases.

      For now I think I'll just focus on #1. It's debatable whether being forgiving is really ideal in general, and since this particular bit of unforgivingness has been around since at least 2012 I think I'll leave it alone.

      Attachments

        Issue Links

          Activity

            People

              bstansbe@redhat.com Brian Stansberry
              bstansbe@redhat.com Brian Stansberry
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: