Joseph Witt created NIFI-1633:
---------------------------------
Summary: ExtractText should handle null capture groups
Key: NIFI-1633
URL: https://issues.apache.org/jira/browse/NIFI-1633
Project: Apache NiFi
Issue Type: Bug
Reporter: Joseph Witt
Assignee: Joseph Witt
Fix For: 0.6.0
Conrad Crampton on the users mailing list reported:
Hi,
I don’t know if this is expected behaviour but I think I understand why this is
happening now. I have a regexp in the ExtractText processors viz:
(?s:^.+: (\d\d?)(\w\w\w)(\d{4}) ([\d ]\d:\d\d:\d\d) Product=(.+?)
OriginIP=(.+?) Origin=(.+?) Action=(.+?) SIP=(.+?) Source=(.+?) SPort=(\d+?)
DIP=(.+) Destination=(.+?) DPort=(\d+?) Protocol=(.+?)(?: ICMPType=(.+?)
ICMPCode=(.+?))? IFName=(.+?) IFDirection=(.+?) Reason=(.+?) Rule=(.+?)
PolicyName=(.+?) Info=(.+?) XlateSIP=(.+?) XlateSPort=([\d]+|\-?)
XlateDIP=(.+?) XlateDPort=([\d]+|\-?)(.*)$)
With this (?: ICMPType=(.+?) ICMPCode=(.+?))? the problem I think. Because I
have made a non capturing matching group optional, for those log lines that
don’t have this section matching the dynamic variable can’t set the index
correctly as the match is returning null for these capture groups. Obviously I
haven’t gone too deep into the code, but if I have a RouteOnContent processor
before this testing for this string and remove this from regexp (and have two
ExtractText processors) then it works. It appeared that all the NPE were thrown
for those lines that didn’t match the optional matching group.
Has this been observed before?
Thanks
Conrad
--- In looking at the code this line looks offensive:
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java#L325
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)