[ https://issues.apache.org/jira/browse/NIFI-4272?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matthew Clarke updated NIFI-4272: --------------------------------- Description: I am using the ReplaceText processor to take a string 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. was: 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. > 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.1.0, 1.2.0, 1.3.0 > Reporter: Matthew Clarke > > I am using the ReplaceText processor to take a string 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)