You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by bb...@apache.org on 2016/12/15 18:23:18 UTC

nifi git commit: NIFI-3186: Fixed NPE that was overlooked

Repository: nifi
Updated Branches:
  refs/heads/master 5776c4b1f -> ab2d07aa5


NIFI-3186: Fixed NPE that was overlooked

This closes #1317.

Signed-off-by: Bryan Bende <bb...@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 <ma...@hotmail.com>
Authored: Mon Dec 12 08:25:51 2016 -0500
Committer: Bryan Bende <bb...@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