timeabarna commented on code in PR #6115: URL: https://github.com/apache/nifi/pull/6115#discussion_r905766553
########## nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java: ########## @@ -1209,33 +1194,112 @@ protected Collection<ValidationResult> computeValidationErrors(final ValidationC } @Override - protected List<ValidationResult> validateConfig() { + public List<ValidationResult> validateConfig() { final List<ValidationResult> results = new ArrayList<>(); final ParameterContext parameterContext = getParameterContext(); - if (parameterContext == null && !this.parameterReferences.isEmpty()) { + if (parameterContext == null && !this.configurationParameterReferences.isEmpty()) { results.add(new ValidationResult.Builder() - .subject(getName()) + .subject(RUN_SCHEDULE) + .input("Parameter Context") .valid(false) .explanation("Processor configuration references one or more Parameters but no Parameter Context is currently set on the Process Group.") .build()); } else { - for (final ParameterReference paramRef : parameterReferences) { - if (!parameterContext.getParameter(paramRef.getParameterName()).isPresent() ) { + for (final ParameterReference paramRef : configurationParameterReferences) { + final Optional<Parameter> parameterRef = parameterContext.getParameter(paramRef.getParameterName()); + if (!parameterRef.isPresent() ) { results.add(new ValidationResult.Builder() - .subject(getName()) + .subject(RUN_SCHEDULE) + .input(paramRef.getParameterName()) .valid(false) .explanation("Processor configuration references Parameter '" + paramRef.getParameterName() + "' but the currently selected Parameter Context does not have a Parameter with that name") .build()); + } else { + final ParameterDescriptor parameterDescriptor = parameterRef.get().getDescriptor(); + if (parameterDescriptor.isSensitive()) { + results.add(new ValidationResult.Builder() + .subject(RUN_SCHEDULE) + .input(parameterDescriptor.getName()) + .valid(false) + .explanation("Processor configuration cannot reference sensitive parameters") + .build()); + } } } - } + final String schedulingPeriod = getSchedulingPeriod(); + final String evaluatedSchedulingPeriod = evaluateParameter(schedulingPeriod); + + if (evaluatedSchedulingPeriod != null) { Review Comment: For User experience I would not like to stop the validation at the first error found. As parameter substitution can be null if a parameter can not be substituted, to be able to continue validation checks, I need to check for null here. If the value is incorrect the Processor will be invalid and no null value will be set. -- 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. To unsubscribe, e-mail: issues-unsubscr...@nifi.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org