Repository: nifi Updated Branches: refs/heads/master 5776c4b1f -> ab2d07aa5
NIFI-3186: Fixed NPE that was overlooked This closes #1317. Signed-off-by: Bryan Bende <bbe...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/ab2d07aa Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/ab2d07aa Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/ab2d07aa Branch: refs/heads/master Commit: ab2d07aa5a9cf0f766b437ca5617e9e878751399 Parents: 5776c4b Author: Mark Payne <marka...@hotmail.com> Authored: Mon Dec 12 08:25:51 2016 -0500 Committer: Bryan Bende <bbe...@apache.org> Committed: Thu Dec 15 12:56:23 2016 -0500 ---------------------------------------------------------------------- .../provenance/ByteArraySchemaRecordReader.java | 3 +++ .../TestSchemaRecordReaderWriter.java | 26 ++++++++++++++++++++ 2 files changed, 29 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/ab2d07aa/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/ByteArraySchemaRecordReader.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/ByteArraySchemaRecordReader.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/ByteArraySchemaRecordReader.java index 297f084..bb43ba8 100644 --- a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/ByteArraySchemaRecordReader.java +++ b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/ByteArraySchemaRecordReader.java @@ -73,6 +73,9 @@ public class ByteArraySchemaRecordReader extends CompressableRecordReader { final InputStream limitedIn = new LimitingInputStream(in, recordLength); final Record eventRecord = recordReader.readRecord(limitedIn); + if (eventRecord == null) { + return null; + } return EventRecord.getEvent(eventRecord, getFilename(), byteOffset, getMaxAttributeLength()); } http://git-wip-us.apache.org/repos/asf/nifi/blob/ab2d07aa/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestSchemaRecordReaderWriter.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestSchemaRecordReaderWriter.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestSchemaRecordReaderWriter.java index b9bb85e..aed690b 100644 --- a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestSchemaRecordReaderWriter.java +++ b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/test/java/org/apache/nifi/provenance/TestSchemaRecordReaderWriter.java @@ -20,6 +20,7 @@ package org.apache.nifi.provenance; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.ByteArrayOutputStream; @@ -164,6 +165,31 @@ public class TestSchemaRecordReaderWriter extends AbstractTestRecordReaderWriter } } + @Test + public void testAddOneRecordReadTwice() throws IOException { + final RecordField unitTestField = new SimpleRecordField("Unit Test Field", FieldType.STRING, Repetition.EXACTLY_ONE); + final Consumer<List<RecordField>> schemaModifier = fields -> fields.add(unitTestField); + + final Map<RecordField, Object> toAdd = new HashMap<>(); + toAdd.put(unitTestField, "hello"); + + try (final ByteArraySchemaRecordWriter writer = createSchemaWriter(schemaModifier, toAdd)) { + writer.writeHeader(1L); + writer.writeRecord(createEvent(), 3L); + } + + try (final InputStream in = new FileInputStream(journalFile); + final TocReader tocReader = new StandardTocReader(tocFile); + final RecordReader reader = createReader(in, journalFile.getName(), tocReader, 10000)) { + + final ProvenanceEventRecord firstEvent = reader.nextRecord(); + assertNotNull(firstEvent); + + final ProvenanceEventRecord secondEvent = reader.nextRecord(); + assertNull(secondEvent); + } + } + /** * Creates a SchemaRecordWriter that uses a modified schema