Alexey Durov created NIFI-5974:
----------------------------------
Summary: SplitContent: missing Fragment Attributes if the splitter
wasn't found
Key: NIFI-5974
URL: https://issues.apache.org/jira/browse/NIFI-5974
Project: Apache NiFi
Issue Type: Bug
Components: Extensions
Affects Versions: 1.8.0
Reporter: Alexey Durov
If there is no splitter in the input Flow File and nothing was changed the
Fragment Attributes are missing in the result. That breaks the MergeContent
processor as it doesn't know how many fragments are expected.
For example if the splitter is "," and the targed content is "UVAT" there are
no {{fragment.count}}, {{fragment.identifier}}, {{fragment.index}},
{{segment.original.filename}} attributes in the result.
*Expected result*: "splits" flow file has mentioned attributes.
Here is a "red" test:
{code}
@Test
public void testNoSplitterInString() {
String content = "UVAT";
final TestRunner runner = TestRunners.newTestRunner(new SplitContent());
runner.setProperty(SplitContent.FORMAT,
SplitContent.UTF8_FORMAT.getValue());
runner.setProperty(SplitContent.BYTE_SEQUENCE, ",");
runner.setProperty(SplitContent.KEEP_SEQUENCE, "false");
runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION,
SplitContent.TRAILING_POSITION.getValue());
runner.enqueue(content.getBytes());
runner.run();
runner.assertTransferCount(SplitContent.REL_SPLITS, 1);
MockFlowFile splitResult =
runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS).get(0);
splitResult.assertAttributeExists(FRAGMENT_ID);
splitResult.assertAttributeExists(SEGMENT_ORIGINAL_FILENAME);
splitResult.assertAttributeEquals(FRAGMENT_COUNT, "1");
splitResult.assertAttributeEquals(FRAGMENT_INDEX, "1");
runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
runner.assertQueueEmpty();
final List<MockFlowFile> splits =
runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
splits.get(0).assertContentEquals(content);
}
{code}
The fix is ready, pending PR
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)