This is an automated email from the ASF dual-hosted git repository. bbende pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push: new 7d99521d4c NIFI-11089: Resolving previously resolved parameter providers when possible on version sync (#6886) 7d99521d4c is described below commit 7d99521d4cb557d713df4d6dbb56b6b7ccd54cc4 Author: Joe Gresock <jgres...@gmail.com> AuthorDate: Wed Jan 25 13:42:52 2023 -0500 NIFI-11089: Resolving previously resolved parameter providers when possible on version sync (#6886) --- .../StandardVersionedComponentSynchronizer.java | 25 +++++++++++++++------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizer.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizer.java index 188b94de54..b4792dadaa 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizer.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/flow/synchronization/StandardVersionedComponentSynchronizer.java @@ -1907,16 +1907,25 @@ public class StandardVersionedComponentSynchronizer implements VersionedComponen if (reference == null) { parameterProviderIdToSet = null; } else { - final String newParameterProviderId = componentIdGenerator.generateUuid(parameterProviderId, parameterProviderId, null); + parameterProviderNode = context.getFlowManager().getParameterProvider(reference.getIdentifier()); + if (parameterProviderNode != null) { + parameterProviderIdToSet = reference.getIdentifier(); + } else { + final String newParameterProviderId = componentIdGenerator.generateUuid(parameterProviderId, parameterProviderId, null); + + final Bundle bundle = reference.getBundle(); + parameterProviderNode = context.getFlowManager().createParameterProvider(reference.getType(), newParameterProviderId, + new BundleCoordinate(bundle.getGroup(), bundle.getArtifact(), bundle.getVersion()), true); - final Bundle bundle = reference.getBundle(); - parameterProviderNode = context.getFlowManager().createParameterProvider(reference.getType(), newParameterProviderId, - new BundleCoordinate(bundle.getGroup(), bundle.getArtifact(), bundle.getVersion()), true); + parameterProviderNode.pauseValidationTrigger(); // avoid triggering validation multiple times + parameterProviderNode.setName(reference.getName()); + parameterProviderNode.resumeValidationTrigger(); + parameterProviderIdToSet = parameterProviderNode.getIdentifier(); - parameterProviderNode.pauseValidationTrigger(); // avoid triggering validation multiple times - parameterProviderNode.setName(reference.getName()); - parameterProviderNode.resumeValidationTrigger(); - parameterProviderIdToSet = parameterProviderNode.getIdentifier(); + // Set the reference id to the new id so it can be picked up by other contexts referencing the same provider + reference.setIdentifier(parameterProviderIdToSet); + parameterProviderReferences.put(parameterProviderIdToSet, reference); + } } } }