NIFI-302: Blacklist a partition if IOException is thrown on rollover

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

Branch: refs/heads/develop
Commit: 608f8007ed945f5fd9bcfa6cd31e56a871d0a096
Parents: f9620cc
Author: Mark Payne <marka...@hotmail.com>
Authored: Fri Mar 6 15:17:56 2015 -0500
Committer: Mark Payne <marka...@hotmail.com>
Committed: Fri Mar 6 15:17:56 2015 -0500

----------------------------------------------------------------------
 .../src/main/java/org/wali/MinimalLockingWriteAheadLog.java   | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/608f8007/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java
 
b/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java
index 19208d3..5b20b93 100644
--- 
a/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java
+++ 
b/nifi/nifi-commons/nifi-write-ahead-log/src/main/java/org/wali/MinimalLockingWriteAheadLog.java
@@ -500,7 +500,12 @@ public final class MinimalLockingWriteAheadLog<T> 
implements WriteAheadRepositor
 
                 swapLocations = new HashSet<>(externalLocations);
                 for (final Partition<T> partition : partitions) {
-                    partition.rollover();
+                    try {
+                        partition.rollover();
+                    } catch (final IOException ioe) {
+                        partition.blackList();
+                        throw ioe;
+                    }
                 }
 
                 // notify global sync with the write lock held. We do this 
because we don't want the repository to get updated

Reply via email to