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)