Ferenc Gerlits created MINIFICPP-2316:
-----------------------------------------

             Summary: Expression language does not handle ${literal('\n')}
                 Key: MINIFICPP-2316
                 URL: https://issues.apache.org/jira/browse/MINIFICPP-2316
             Project: Apache NiFi MiNiFi C++
          Issue Type: Bug
            Reporter: Ferenc Gerlits


If we put {{{}$\{literal('\n'){}}}} in a property value (which supports 
expression value) in NiFi, it results in a newline (0x0A) character. In MiNiFi, 
we get this error message:
{noformat}
[2024-03-11 10:48:37.164] [org::apache::nifi::minifi::core::Processor] 
[warning] Caught "1.13: syntax error, unexpected identifier, expecting \ or "'" 
or "\""" (St13runtime_error) during Processor::onTrigger of processor: 
932a0430-3655-4db2-9b4a-bb271ba67d53 (Append newline) 
(932a0430-3655-4db2-9b4a-bb271ba67d53)
[2024-03-11 10:48:37.164] [org::apache::nifi::minifi::core::ProcessSession] 
[info] Penalizing 7670c84e-df8c-11ee-9667-0242204dc695 for 30000ms at Append 
newline
{noformat}
Note that the actual property value in {{config.yml}} (or in the exported NiFi 
config) is
{noformat}
${literal('\\n')}
{noformat}
because the backslash gets escaped.

If you manually edit the {{config.yml}} file and enter 
{{{}$\{literal('\n'){}}}}, that works, because we'll have a 0x0A character in 
the config, so MiNiFi sees
{noformat}
${literal('
')}
{noformat}
But if you use a tool to generate {{{}config.yml{}}}, it most likely will 
escape the backslash, so there is no way to have {{$\{literal('\n'){}}}} as the 
property value.

Please check the NiFi code to see the full list of special characters supported 
by NiFi, and make sure MiNiFi supports the same list.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to