Repository: nifi
Updated Branches:
  refs/heads/master 7035694e3 -> 2595d816c


NIFI-3986: This closes #1868. When we encounted EOFException from sequential 
record reader event iterator, just treat it as not having any more events

Signed-off-by: joewitt <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/2595d816
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/2595d816
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/2595d816

Branch: refs/heads/master
Commit: 2595d816c4c9ef47a66f1aed477932c589588823
Parents: 7035694
Author: Mark Payne <[email protected]>
Authored: Sat May 27 14:55:04 2017 -0400
Committer: joewitt <[email protected]>
Committed: Thu Jun 1 15:08:12 2017 -0400

----------------------------------------------------------------------
 .../iterator/SequentialRecordReaderEventIterator.java  | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/2595d816/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/store/iterator/SequentialRecordReaderEventIterator.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/store/iterator/SequentialRecordReaderEventIterator.java
 
b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/store/iterator/SequentialRecordReaderEventIterator.java
index 869febf..98fe9cd 100644
--- 
a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/store/iterator/SequentialRecordReaderEventIterator.java
+++ 
b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/store/iterator/SequentialRecordReaderEventIterator.java
@@ -68,7 +68,18 @@ public class SequentialRecordReaderEventIterator implements 
EventIterator {
         }
 
         while (true) {
-            final ProvenanceEventRecord event = reader.nextRecord();
+            ProvenanceEventRecord event;
+            try {
+                event = reader.nextRecord();
+            } catch (final EOFException eof) {
+                // We have run out of data. Treat the same as getting back 
null.
+                // This happens particularly if reading the same file that is 
being
+                // written to (because we use a BufferedOutputStream to write 
to it, so we
+                // may read half-way through a record and then hit the end of 
what was
+                // buffered and flushed).
+                event = null;
+            }
+
             if (event == null) {
                 if (rotateReader()) {
                     continue;

Reply via email to