Mark Payne created NIFI-5026:
--------------------------------
Summary: Expression Language Query.prepare function can sometimes
ignore escape sequence
Key: NIFI-5026
URL: https://issues.apache.org/jira/browse/NIFI-5026
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Reporter: Mark Payne
Assignee: Mark Payne
As reported on the [[email protected]|mailto:[email protected]] mailing list:
Hi,
It looks like I have stumbled upon a bug in substitution of evaluated
expressions.
A test case:
{code:java}
String result =
org.apache.nifi.attribute.expression.language.Query.prepare("${foo}$${foo}").evaluateExpressions(Collections.singletonMap("foo",
"bar"), null);{code}
Expected result:
{code:java}
bar${foo}{code}
Observed result:
{code:java}
barbar{code}
The issue exists in 1.5.0 and, as far as I can tell, in the master branch.The
cause is quite simple: Query.prepare(...) splits the input string into pieces
to be evaluated and substituted or to be copied literally, but it doesn't keep
track of which is which.That couldn't possibly work. If a piece to be copied
literally happens to be equal to one of the pieces to be substituted, the
things go wrong, as the test case demonstrates.
Regards,Sergei.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)