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/04/09 14:19:56 UTC

[nifi] branch master updated: NIFI-5464: Consider ports invalid unless they have both incoming and outgoing connections

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 38db4e9  NIFI-5464: Consider ports invalid unless they have both incoming and outgoing connections
38db4e9 is described below

commit 38db4e97cd619b3a3c46e2e6a2e71e25df98ad0b
Author: Mark Payne <ma...@hotmail.com>
AuthorDate: Mon Apr 8 16:28:58 2019 -0400

    NIFI-5464: Consider ports invalid unless they have both incoming and outgoing connections
    
    This closes #3417.
    
    Signed-off-by: Bryan Bende <bb...@apache.org>
---
 .../org/apache/nifi/connectable/LocalPort.java     | 24 ++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java
index f4baa16..5db8286 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/connectable/LocalPort.java
@@ -50,20 +50,28 @@ public class LocalPort extends AbstractPort {
 
     @Override
     public boolean isValid() {
-        return !getConnections(Relationship.ANONYMOUS).isEmpty();
+        return !getConnections(Relationship.ANONYMOUS).isEmpty() && hasIncomingConnection();
     }
 
     @Override
     public Collection<ValidationResult> getValidationErrors() {
         final Collection<ValidationResult> validationErrors = new ArrayList<>();
-        if (!isValid()) {
-            final ValidationResult error = new ValidationResult.Builder()
-                    .explanation(String.format("Output connection for port '%s' is not defined.", getName()))
-                    .subject(String.format("Port '%s'", getName()))
-                    .valid(false)
-                    .build();
-            validationErrors.add(error);
+        if (getConnections(Relationship.ANONYMOUS).isEmpty()) {
+            validationErrors.add(new ValidationResult.Builder()
+                .explanation("Port has no outgoing connections")
+                .subject(String.format("Port '%s'", getName()))
+                .valid(false)
+                .build());
         }
+
+        if (!hasIncomingConnection()) {
+            validationErrors.add(new ValidationResult.Builder()
+                .explanation("Port has no incoming connections")
+                .subject(String.format("Port '%s'", getName()))
+                .valid(false)
+                .build());
+        }
+
         return validationErrors;
     }