Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-3255

SplitText fails with IllegalArgumentException: Destination cannot be within sources

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.1.0, 1.1.1
    • Fix Version/s: 1.2.0
    • Component/s: Extensions
    • Labels:
      None

      Description

      If SplitText is configured with Header Line Count grater than 0, and input flow file like below is passed, it fails with IllegalArgumentException:

      header
      line1
      line2
      

      Stacktrace:

      2016-12-27 16:41:51,016 WARN [Timer-Driven Process Thread-2] o.a.n.c.t.ContinuallyRunProcessorTask java.lang.IllegalArgumentException: Destination cannot be within sources
              at org.apache.nifi.controller.repository.StandardProcessSession.merge(StandardProcessSession.java:2217) ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
              at org.apache.nifi.controller.repository.StandardProcessSession.merge(StandardProcessSession.java:2209) ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
              at org.apache.nifi.processors.standard.SplitText.generateSplitFlowFiles(SplitText.java:305) ~[na:na]
              at org.apache.nifi.processors.standard.SplitText.onTrigger(SplitText.java:253) ~[na:na]
              at org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27) ~[nifi-api-1.2.0-SNAPSHOT.jar:1
      

      Marked as critical since this is a regression and breaks existing flow. With 1.0, SplitText produces following output flow files to "split" relationship with the same input flow file and processor configuration:

      # output flow file 1
      header
      line1
      # output flow file 2
      header
      line 2
      

      The related code block in the processor has been covered by unit tests, however, since unit test uses MockProcessSession, it skips check conditions in StandardProcessSession. MockProcessSession should be updated, too, in order to catch this type of issue with Unit testing.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ozhurakousky Oleg Zhurakousky
                Reporter:
                ijokarumawak Koji Kawamura
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: