Matthew Clarke created NIFI-4272:
------------------------------------
Summary: ReplaceText processor does not properly iterate multiple
replacement values when EL is used
Key: NIFI-4272
URL: https://issues.apache.org/jira/browse/NIFI-4272
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Affects Versions: 1.3.0, 1.2.0, 1.1.0
Reporter: Matthew Clarke
I am using the ReplaceText processor to take a spring input (example:
{"name":"Smith","middle":"nifi","firstname":"John"} ) and change all the filed
names to all uppercase.
Using above input as an example, I expect output like
{"NAME":"Smith","MIDDLE":"nifi","FIRSTNAME":"John"}
I expect I should be able to do this with ReplaceText processor; however, I see
some unexpected behavior:
-------
Test 1: (uses EL in the replacement value property)
Search value: \"([a-z]+?)\":\"(.+?)\"
Replacement Value: \"*${'$1':toUpper()}*":\"$2\"
Result: {"NAME":"Smith","NAME":"nifi","NAME":"John"}
-------
Test 2: (Does not use EL in the replacement Value property)
Search value: \"([a-z]+?)\":\"(.+?)\"
Replacement Value: \"new$1":\"$2\"
Result: {"newname":"Smith","newmiddle":"nifi","newfirstname":"John"}
--------
As you can see if I use a NiFi expression Language statement in the Replacement
Value property it no longer iterates as expect through the various $1 captured
values. It repeatedly uses the EL result from the first EL evaluation in every
iteration while $2 correctly iterates through the search values.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)