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);
+                    }
                 }
             }
         }

Reply via email to