From 684c18a6b831e7abe200aafa7475a007944239ed Mon Sep 17 00:00:00 2001 From: Pierre Villard Date: Wed, 11 Jan 2017 02:12:07 +0100 Subject: [PATCH] NIFI-1962 - Fixed NPE in toDate() EL function --- .../language/evaluation/functions/NumberToDateEvaluator.java | 2 +- .../apache/nifi/attribute/expression/language/TestQuery.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java index 6867202ad0fc..c4b14bb6460c 100644 --- a/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java +++ b/nifi-commons/nifi-expression-language/src/main/java/org/apache/nifi/attribute/expression/language/evaluation/functions/NumberToDateEvaluator.java @@ -37,7 +37,7 @@ public QueryResult evaluate(final Map attributes) { final QueryResult result = subject.evaluate(attributes); final Long value = result.getValue(); if (value == null) { - return null; + return new DateQueryResult(null); } return new DateQueryResult(new Date(value)); diff --git a/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java b/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java index 03de38f98734..5946aa5b3190 100644 --- a/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java +++ b/nifi-commons/nifi-expression-language/src/test/java/org/apache/nifi/attribute/expression/language/TestQuery.java @@ -898,6 +898,9 @@ public void testDate() { verifyEquals("${entryDate:toNumber():toDate():format('yyyy')}", attributes, String.valueOf(year)); + // test for not existing attribute (NIFI-1962) + assertEquals("", Query.evaluateExpressions("${notExistingAtt:toDate()}", attributes, null)); + attributes.clear(); attributes.put("month", "3"); attributes.put("day", "4");