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

Reply via email to