[
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)