[ 
https://issues.apache.org/jira/browse/NIFI-8266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17291207#comment-17291207
 ] 

Matt Burgess commented on NIFI-8266:
------------------------------------

Instead of an annotation, it's probably better to just load the script in 
getSupportedPropertyDescriptors() if it hasn't been done already. Then the 
first context should have the correct properties. 

> InvokeScriptedProcessor can throw NPE during custom property validation
> -----------------------------------------------------------------------
>
>                 Key: NIFI-8266
>                 URL: https://issues.apache.org/jira/browse/NIFI-8266
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>            Reporter: Matt Burgess
>            Priority: Major
>
> If a script in InvokeScriptedProcessor (ISP) specifies additional properties 
> to be added to the configuration dialog, a NullPointerException can occur 
> during validation:
> This appears to be the result of the ValidationContext for the ISP being 
> created before the script is loaded, and thus the properties are not present 
> in the context during validation. However the list iterated over in 
> AbstractConfigurableComponent.validate() is the list of supported property 
> descriptors, which may or may not include the script's properties when 
> validate() is called.
> The list to be iterated over should be the list of properties in the 
> ValidationContext, to avoid an NPE. Having said that, for components that can 
> provide properties dynamically (via script, e.g.) the ValidationContext 
> should be recreated rather than reusing the first one created. This could be 
> accomplished with a component annotation (ProvidesCustomProperties or 
> something). If the annotation exists for the component, the ValidationContext 
> should be recreated before validation; otherwise, the first one created 
> should be retained for performance purposes.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to