Github user ijokarumawak commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2199#discussion_r145412969
  
    --- Diff: 
nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java
 ---
    @@ -275,7 +275,7 @@ protected final boolean isBasicAuthEnabled() {
         }
     
         @Override
    -    protected final Collection<ValidationResult> 
customValidate(ValidationContext context) {
    +    protected Collection<ValidationResult> 
customValidate(ValidationContext context) {
    --- End diff --
    
    I imagine the reason why this customValidate is marked with `final` is that 
because the original author wanted to avoid sub-classes skip executing 
validation code implemented here. You implemented within GetSolr, and call 
`super.customValidate` from there, so it should be fine, but other sub-class 
can forget to call `super.customValidate` if we remove `final` keyword.
    
    So, I thought it might be safer approach to add an abstract method, such as 
`additionalCustomValidate` at SolrProcessor, then call it from customValidate, 
and let sub-classes implement custom validation in it.


---

Reply via email to