[ https://issues.apache.org/jira/browse/NIFI-8266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17291722#comment-17291722 ]
Matt Burgess commented on NIFI-8266: ------------------------------------ Decided to just implement the part when we validate the context's properties rather than what the component reports as supported properties. So it will likely validate a new InvokeScriptedProcessor before any script body/file is set, so only the existing 4 properties are added. Once properties are set, the validation context is recreated and will include any new properties defined by the script. It's a much cleaner and simpler solution and solves the NPE issue. > 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)