markap14 commented on a change in pull request #4656:
URL: https://github.com/apache/nifi/pull/4656#discussion_r551492094
##########
File path:
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ParameterContextResource.java
##########
@@ -400,11 +400,14 @@ public Response submitParameterContextUpdate(
}
private void validateParameterNames(final ParameterContextDTO
parameterContextDto) {
- for (final ParameterEntity entity :
parameterContextDto.getParameters()) {
- final String parameterName = entity.getParameter().getName();
- if (!isLegalParameterName(parameterName)) {
- throw new IllegalArgumentException("Request contains an
illegal Parameter Name (" + parameterName + "). Parameter names may only
include letters, numbers, spaces, and the special " +
- "characters .-_");
+ if (parameterContextDto.getParameters() != null) {
Review comment:
So looking through the codebase at where
`ParameterContextDTO.getParameters()` is called, about 50% of the time, we
check if the value is `null`, and 50% of the time, we would throw a
`NullPointerException`, unfortunately. This is one of those awkward coding
situation, IMO, because *generally* I don't believe that code should return
`null` values for collections - they should return an empty collection. But
with DTO's, we generally want to return exactly what was given to it - there
should be no logic such as "if null, use empty collection".
So I think either is perfectly acceptable. We can either say that the value
MUST be populated and throw an IllegalArgumentException if it's not. OR we can
say it's OK for that to be null, but in that situation we need to update
everywhere in the code that looks at `ParameterContextDTO.getParameters()` -
not just this Resource. I think I would lean toward the latter - allow a `null`
value and just ensure that we always handle it properly. We should be lenient
in what we permit.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]