[
https://issues.apache.org/jira/browse/NIFI-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15485043#comment-15485043
]
ASF GitHub Bot commented on NIFI-2752:
--------------------------------------
GitHub user jskora opened a pull request:
https://github.com/apache/nifi/pull/1007
NIFI-2752 Correct ReplaceText default pattern and unit tests
* Corrected the DEFAULT_REGEX pattern.
* Added tests to isolate regex capture group problem and verify corrected
functionality.
* Removed short circuit logic that masked configuration errors and created
inconsistent processor behavior.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jskora/nifi NIFI-2752
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/nifi/pull/1007.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1007
----
----
> Correct ReplaceText default pattern and unit tests
> --------------------------------------------------
>
> Key: NIFI-2752
> URL: https://issues.apache.org/jira/browse/NIFI-2752
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 1.1.0, 0.8.0, 0.7.1
> Reporter: Joe Skora
> Assignee: Joe Skora
>
> [{{ReplaceText.DEFAULT_REGEX}}|https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java#L87]
> is defined as "(?s:\^.\*$)", which is valid PCRE but must be expressed as
> "(?s)(\^.\*$)" in Java.
> The Java [Pattern class|https://docs.oracle.com/javase/8/docs/api/index.html]
> specifies that patterns like "(?idmsux-idmsux:X)" are _non-capturing_, so
> anything but the default pattern and replacement value result in empty
> output. This isn't caught by unit tests because the code short circuits if
> the default pattern and replacement are found in
> [ReplaceText.onTrigger()|https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java#L217].
> This hides the capture group problem from the unit tests and the default
> processor configuration, but causes the processor to produce empty output if
> using non-trivial patterns and replacements.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)