[
https://issues.apache.org/jira/browse/NIFI-3255?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15865873#comment-15865873
]
ASF GitHub Bot commented on NIFI-3255:
--------------------------------------
Github user olegz commented on a diff in the pull request:
https://github.com/apache/nifi/pull/1394#discussion_r101050107
--- Diff:
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java
---
@@ -326,6 +329,27 @@ public void process(InputStream in) throws IOException
{
return splitFlowFiles;
}
+ /**
+ * Will merge the two files. This operation has different semantics
then
+ * sessioin.merge. Also, it always expects 2 and no more then 2 flow
files,
+ * so vararg signature primarily for simplification.
+ */
+ private FlowFile merge(ProcessSession session, FlowFile... flowFiles) {
--- End diff --
So, in the context of this specific processor what you're saying is true -
_prepend header_. But, the operation itself has nothing to do with either
_headers_ or _prepend_. It simply merges two files together in the order they
have been supplied and eventually should probably be considered as candidate
for some utility static operation. Anyway, I'll keep the name as is, but will
update the javadoc.
> 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
> Fix For: 1.2.0
>
>
> 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.15#6346)