[ 
https://issues.apache.org/jira/browse/NIFI-3255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15780487#comment-15780487
 ] 

Oleg Zhurakousky edited comment on NIFI-3255 at 12/27/16 2:24 PM:
------------------------------------------------------------------

I am now wondering if the check in StandardProcessSession:2216 is valid:
{code}
if (sources.contains(destination)) {
            throw new IllegalArgumentException("Destination cannot be within 
sources");
}
{code}
It doesn't seem to be covered by any tests and I don't see any references to it 
except in SplitText.
Anyway, i'll dig in and add tests for it to TestStandardProcessSession and will 
fix the MockProcessSession. Will raise new JIRA as subtask of this one, since I 
do not believe the issue is with SplitText, rather with ProcessSession 
implementation.


was (Author: ozhurakousky):
I am now wondering if the check in StandaprdProcessSession:2216 is valid:
{code}
if (sources.contains(destination)) {
            throw new IllegalArgumentException("Destination cannot be within 
sources");
}
{code}
It doesn't seem to be covered by any tests and I don't see any references to it 
except in SplitText.
Anyway, i'll dig in and add tests for it to TestStandardProcessSession and will 
fix the MockProcessSession. Will raise new JIRA as subtask of this one, since I 
do not believe the issue is with SplitText, rather with ProcessSession 
implementation.

> SplitText fails with IllegalArgumentException: Destination cannot be within 
> sources
> -----------------------------------------------------------------------------------
>
>                 Key: NIFI-3255
>                 URL: https://issues.apache.org/jira/browse/NIFI-3255
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 1.1.0, 1.1.1
>            Reporter: Koji Kawamura
>            Assignee: Oleg Zhurakousky
>            Priority: Critical
>
> If SplitText is configured with Header Line Count grater than 0, and input 
> flow file like below is passed, it fails with IllegalArgumentException:
> {code}
> header
> line1
> line2
> {code}
> Stacktrace:
> {code}
> 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
> {code}
> 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:
> {code}
> # output flow file 1
> header
> line1
> # output flow file 2
> header
> line 2
> {code}
> 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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to