You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by bb...@apache.org on 2019/03/06 22:07:34 UTC

[nifi] branch master updated: NIFI-6108: Fix port names when imported from registry

This is an automated email from the ASF dual-hosted git repository.

bbende pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/master by this push:
     new 1d06044  NIFI-6108: Fix port names when imported from registry
1d06044 is described below

commit 1d06044e3b08a886c6d8990ce5bfaa69e63d7324
Author: Kevin Doran <kd...@apache.org>
AuthorDate: Wed Mar 6 16:24:50 2019 -0500

    NIFI-6108: Fix port names when imported from registry
    
    This closes #3356.
    
    Signed-off-by: Bryan Bende <bb...@apache.org>
---
 .../apache/nifi/groups/StandardProcessGroup.java   | 35 ++++++----------------
 1 file changed, 9 insertions(+), 26 deletions(-)

diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
index be49d09..c1a241b 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/groups/StandardProcessGroup.java
@@ -3447,8 +3447,7 @@ public final class StandardProcessGroup implements ProcessGroup {
         // A's former name. This is a valid state by the end of the flow update, but for a brief moment there may be two ports with the
         // same name. To avoid this conflict, we keep the final names in a map indexed by port id, use a temporary name for each port
         // during the update, and after all ports have been added/updated/removed, we set the final names on all ports.
-        final Map<String, String> proposedInputPortNamesByPortId = new HashMap<>();
-        final Map<String, String> proposedOutputPortNamesByPortId = new HashMap<>();
+        final Map<Port, String> proposedPortFinalNames = new HashMap<>();
 
         group.setComments(proposed.getComments());
 
@@ -3600,12 +3599,12 @@ public final class StandardProcessGroup implements ProcessGroup {
             if (port == null) {
                 final String temporaryName = generateTemporaryPortName(proposedPort);
                 final Port added = addInputPort(group, proposedPort, componentIdSeed, temporaryName);
-                proposedInputPortNamesByPortId.put(added.getIdentifier(), proposedPort.getName());
+                proposedPortFinalNames.put(added, proposedPort.getName());
                 flowManager.onInputPortAdded(added);
                 LOG.info("Added {} to {}", added, this);
             } else if (updatedVersionedComponentIds.contains(proposedPort.getIdentifier())) {
                 final String temporaryName = generateTemporaryPortName(proposedPort);
-                proposedInputPortNamesByPortId.put(port.getIdentifier(), proposedPort.getName());
+                proposedPortFinalNames.put(port, proposedPort.getName());
                 updatePort(port, proposedPort, temporaryName);
                 LOG.info("Updated {}", port);
             } else {
@@ -3625,12 +3624,12 @@ public final class StandardProcessGroup implements ProcessGroup {
             if (port == null) {
                 final String temporaryName = generateTemporaryPortName(proposedPort);
                 final Port added = addOutputPort(group, proposedPort, componentIdSeed, temporaryName);
-                proposedOutputPortNamesByPortId.put(added.getIdentifier(), proposedPort.getName());
+                proposedPortFinalNames.put(added, proposedPort.getName());
                 flowManager.onOutputPortAdded(added);
                 LOG.info("Added {} to {}", added, this);
             } else if (updatedVersionedComponentIds.contains(proposedPort.getIdentifier())) {
                 final String temporaryName = generateTemporaryPortName(proposedPort);
-                proposedOutputPortNamesByPortId.put(port.getIdentifier(), proposedPort.getName());
+                proposedPortFinalNames.put(port, proposedPort.getName());
                 updatePort(port, proposedPort, temporaryName);
                 LOG.info("Updated {}", port);
             } else {
@@ -3789,27 +3788,11 @@ public final class StandardProcessGroup implements ProcessGroup {
 
         // Now that all input/output ports have been removed, we should be able to update
         // all ports to the final name that was proposed in the new flow version.
-        for (final Map.Entry<String, String> idAndName : proposedInputPortNamesByPortId.entrySet()) {
-            final String portId = idAndName.getKey();
-            final String portFinalName = idAndName.getValue();
-            final Port port = getInputPort(portId);
-            if (port == null) {
-                LOG.warn("Expected to find input port with id={} but it was missing.", portId);
-                continue;
-            }
-            LOG.info("Updating {} to replace temporary name with final name", port);
-            updatePortToSetFinalName(port, portFinalName);
-        }
-        for (final Map.Entry<String, String> idAndName : proposedOutputPortNamesByPortId.entrySet()) {
-            final String portId = idAndName.getKey();
-            final String portFinalName = idAndName.getValue();
-            final Port port = getOutputPort(portId);
-            if (port == null) {
-                LOG.warn("Expected to find output port with id={} but it was missing.", portId);
-                continue;
-            }
+        for (final Map.Entry<Port, String> portAndFinalName : proposedPortFinalNames.entrySet()) {
+            final Port port = portAndFinalName.getKey();
+            final String finalName = portAndFinalName.getValue();
             LOG.info("Updating {} to replace temporary name with final name", port);
-            updatePortToSetFinalName(port, portFinalName);
+            updatePortToSetFinalName(port, finalName);
         }
 
         for (final String removedVersionedId : labelsRemoved) {