[ https://issues.apache.org/jira/browse/NIFI-4367?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16337683#comment-16337683 ]
ASF GitHub Bot commented on NIFI-4367: -------------------------------------- Github user mgaido91 commented on a diff in the pull request: https://github.com/apache/nifi/pull/2201#discussion_r163568827 --- Diff: nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/impl/FilteredPropertiesValidationContextAdapter.java --- @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.nifi.script.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.components.PropertyValue; +import org.apache.nifi.components.ValidationContext; + +/** + * filter properties in the ValidationContext, proxy approach, for removing unwanted properties + * + * @author pfreydiere + * + */ +public class FilteredPropertiesValidationContextAdapter extends ValidationContextAdapter { + + private Set<PropertyDescriptor> removedProperties; + private Set<String> removedPropertyNames; + + public FilteredPropertiesValidationContextAdapter(ValidationContext validationContext, Set<PropertyDescriptor> removedProperties) { + super(validationContext); + this.removedProperties = removedProperties; + Set<String> keys = new HashSet<>(); + for (PropertyDescriptor p : removedProperties) { + keys.add(p.getName()); + } + this.removedPropertyNames = keys; + } + + @Override + public Map<String, String> getAllProperties() { + HashMap<String, String> returnedProperties = new HashMap<>(super.getAllProperties()); --- End diff -- I think that the `returnedProperties` can be computed once in the constructor and reused, instead of being recreated anytime > InvokedScriptedProcessor > ------------------------ > > Key: NIFI-4367 > URL: https://issues.apache.org/jira/browse/NIFI-4367 > Project: Apache NiFi > Issue Type: Bug > Components: Core Framework > Affects Versions: 1.3.0, 1.4.0, 1.5.0 > Environment: Linux / Windows > Reporter: Patrice Freydiere > Priority: Major > Labels: InvokeScriptedProcessor, validation > > InvokeScriptedProcessor pass his ValidationContext to the inner script, > validate call > InvokeScriptedProcessor Line 465 : final > Collection<ValidationResult> instanceResults = instance.validate(context); > > The problem is that the invokedscript pass the ScriptFile PropertyDescriptor > that is validated, if the script derived from the > AbstractConfigurableComponent, (because the AbstractConfigurableComponent > validate all the context properties). > The context should be refined to remove the InvokeScriptedProcessor > Properties. -- This message was sent by Atlassian JIRA (v7.6.3#76005)