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)

Reply via email to