Repository: nifi Updated Branches: refs/heads/master d05727b8c -> 5daeba6e0
NIFI-3614 Adding "return" statement to HandleHttpResponse when statusCode is not a number Signed-off-by: Pierre Villard <[email protected]> This closes #1598. Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/5daeba6e Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/5daeba6e Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/5daeba6e Branch: refs/heads/master Commit: 5daeba6e039d465b3ff19b5523b4c10d53475c83 Parents: d05727b Author: Joe Percivall <[email protected]> Authored: Thu Mar 16 14:11:46 2017 -0400 Committer: Pierre Villard <[email protected]> Committed: Mon Mar 20 14:51:56 2017 +0100 ---------------------------------------------------------------------- .../processors/standard/HandleHttpResponse.java | 1 + .../standard/TestHandleHttpResponse.java | 22 ++++++++++++++++++++ 2 files changed, 23 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/5daeba6e/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java index 2244ca6..7fe0b71 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java @@ -136,6 +136,7 @@ public class HandleHttpResponse extends AbstractProcessor { if (!isNumber(statusCodeValue)) { session.transfer(flowFile, REL_FAILURE); getLogger().error("Failed to respond to HTTP request for {} because status code was '{}', which is not a valid number", new Object[]{flowFile, statusCodeValue}); + return; } final HttpContextMap contextMap = context.getProperty(HTTP_CONTEXT_MAP).asControllerService(HttpContextMap.class); http://git-wip-us.apache.org/repos/asf/nifi/blob/5daeba6e/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java index ba402d4..d9fc0b5 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java @@ -142,6 +142,28 @@ public class TestHandleHttpResponse { assertEquals(1, contextMap.getCompletionCount()); } + @Test + public void testStatusCodeEmpty() throws InitializationException { + final TestRunner runner = TestRunners.newTestRunner(HandleHttpResponse.class); + + final MockHttpContextMap contextMap = new MockHttpContextMap("my-id", ""); + runner.addControllerService("http-context-map", contextMap); + runner.enableControllerService(contextMap); + runner.setProperty(HandleHttpResponse.HTTP_CONTEXT_MAP, "http-context-map"); + runner.setProperty(HandleHttpResponse.STATUS_CODE, "${status.code}"); + + final Map<String, String> attributes = new HashMap<>(); + attributes.put(HTTPUtils.HTTP_CONTEXT_ID, "my-id"); + attributes.put("my-attr", "hello"); + + runner.enqueue("hello".getBytes(), attributes); + + runner.run(); + + runner.assertAllFlowFilesTransferred(HandleHttpResponse.REL_FAILURE, 1); + assertEquals(0, contextMap.getCompletionCount()); + } + private static class MockHttpContextMap extends AbstractControllerService implements HttpContextMap { private final String id;
