NIFI-3152: Ensure that we always close the IndexWriter when appropriate in SimpleIndexManager, even if an IOException is thrown when trying to commit the IndexWriter
This closes #1300. Signed-off-by: Bryan Bende <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/070776eb Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/070776eb Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/070776eb Branch: refs/heads/support/nifi-1.1.x Commit: 070776ebaef9b5c4a0632dd79fdf32617c879f40 Parents: ed202b6 Author: Mark Payne <[email protected]> Authored: Mon Dec 5 14:30:57 2016 -0500 Committer: jpercivall <[email protected]> Committed: Mon Dec 19 15:21:12 2016 -0500 ---------------------------------------------------------------------- .../org/apache/nifi/provenance/lucene/SimpleIndexManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/070776eb/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/SimpleIndexManager.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/SimpleIndexManager.java b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/SimpleIndexManager.java index 9e3bacd..81816d2 100644 --- a/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/SimpleIndexManager.java +++ b/nifi-nar-bundles/nifi-provenance-repository-bundle/nifi-persistent-provenance-repository/src/main/java/org/apache/nifi/provenance/lucene/SimpleIndexManager.java @@ -158,8 +158,11 @@ public class SimpleIndexManager implements IndexManager { } else if (count.getCount() <= 1) { // we are finished with this writer. logger.debug("Decrementing count for Index Writer for {} to {}; Closing writer", indexingDirectory, count.getCount() - 1); - writer.commit(); - count.close(); + try { + writer.commit(); + } finally { + count.close(); + } } else { // decrement the count. logger.debug("Decrementing count for Index Writer for {} to {}", indexingDirectory, count.getCount() - 1);
