You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by js...@apache.org on 2017/07/11 13:55:09 UTC

[1/2] nifi git commit: NIFI-3218: throw exception in MockProcessSession when transferring file to self

Repository: nifi
Updated Branches:
  refs/heads/master 0fd51b4d1 -> 07a6499da


NIFI-3218: throw exception in MockProcessSession when transferring file to self


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/58f60b3c
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/58f60b3c
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/58f60b3c

Branch: refs/heads/master
Commit: 58f60b3cf0430e1ca5141c550595cd827b7e4b3e
Parents: 0fd51b4
Author: m-hogue <ho...@gmail.com>
Authored: Thu Jul 6 12:10:09 2017 -0400
Committer: Joe Skora <js...@apache.org>
Committed: Tue Jul 11 13:51:13 2017 +0000

----------------------------------------------------------------------
 .../main/java/org/apache/nifi/util/MockProcessSession.java  | 7 +++++++
 .../java/org/apache/nifi/util/TestMockProcessSession.java   | 9 +++++++++
 2 files changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/58f60b3c/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
index af472d6..553c6e4 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
@@ -756,6 +756,13 @@ public class MockProcessSession implements ProcessSession {
             throw new IllegalArgumentException("I only accept MockFlowFile");
         }
 
+        // if the flowfile provided was created in this session (i.e. it's in currentVersions),
+        // then throw an exception indicating that you can't transfer flowfiles back to self.
+        // this mimics the behavior of StandardProcessSession
+        if(currentVersions.get(flowFile.getId()) != null) {
+            throw new IllegalArgumentException("Cannot transfer FlowFiles that are created in this Session back to self");
+        }
+
         final MockFlowFile mockFlowFile = (MockFlowFile) flowFile;
         beingProcessed.remove(flowFile.getId());
         processorQueue.offer(mockFlowFile);

http://git-wip-us.apache.org/repos/asf/nifi/blob/58f60b3c/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessSession.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessSession.java b/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessSession.java
index 1c554d2..7173f72 100644
--- a/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessSession.java
+++ b/nifi-mock/src/test/java/org/apache/nifi/util/TestMockProcessSession.java
@@ -80,6 +80,15 @@ public class TestMockProcessSession {
 
     }
 
+    @Test(expected = IllegalArgumentException.class)
+    public void testRejectTransferNewlyCreatedFileToSelf() {
+        final Processor processor = new PoorlyBehavedProcessor();
+        final MockProcessSession session = new MockProcessSession(new SharedSessionState(processor, new AtomicLong(0L)), processor);
+        final FlowFile ff1 = session.createFlowFile("hello, world".getBytes());
+        // this should throw an exception because we shouldn't allow a newly created flowfile to get routed back to self
+        session.transfer(ff1);
+    }
+
     protected static class PoorlyBehavedProcessor extends AbstractProcessor {
 
         private static final Relationship REL_FAILURE = new Relationship.Builder()


[2/2] nifi git commit: NIFI-3218: fixed incorrect assertion for self-routing flowfiles in MockProcessSession

Posted by js...@apache.org.
NIFI-3218: fixed incorrect assertion for self-routing flowfiles in MockProcessSession

Signed-off-by: Joe Skora <js...@apache.org>

This closes #1988.


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/07a6499d
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/07a6499d
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/07a6499d

Branch: refs/heads/master
Commit: 07a6499dae93344b0e8a8e8cd890ba16cf667fe2
Parents: 58f60b3
Author: m-hogue <ho...@gmail.com>
Authored: Fri Jul 7 06:46:02 2017 -0400
Committer: Joe Skora <js...@apache.org>
Committed: Tue Jul 11 13:51:40 2017 +0000

----------------------------------------------------------------------
 .../src/main/java/org/apache/nifi/util/MockProcessSession.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/07a6499d/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
----------------------------------------------------------------------
diff --git a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
index 553c6e4..2fdc6ea 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java
@@ -756,10 +756,10 @@ public class MockProcessSession implements ProcessSession {
             throw new IllegalArgumentException("I only accept MockFlowFile");
         }
 
-        // if the flowfile provided was created in this session (i.e. it's in currentVersions),
+        // if the flowfile provided was created in this session (i.e. it's in currentVersions and not in original versions),
         // then throw an exception indicating that you can't transfer flowfiles back to self.
-        // this mimics the behavior of StandardProcessSession
-        if(currentVersions.get(flowFile.getId()) != null) {
+        // this mimics the same behavior in StandardProcessSession
+        if(currentVersions.get(flowFile.getId()) != null && originalVersions.get(flowFile.getId()) == null) {
             throw new IllegalArgumentException("Cannot transfer FlowFiles that are created in this Session back to self");
         }