Repository: nifi
Updated Branches:
  refs/heads/master 3fc8bc00f -> a2fb5fc22


NIFI-1414: Ensure that the DirectoryStream is closed after streaming contents 
of a directory


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

Branch: refs/heads/master
Commit: 1845f6df8d4589e0a53df6c79008dfe165765db3
Parents: 8f688d4
Author: Mark Payne <[email protected]>
Authored: Wed Jan 20 09:12:14 2016 -0500
Committer: Mark Payne <[email protected]>
Committed: Wed Jan 20 09:12:14 2016 -0500

----------------------------------------------------------------------
 .../nifi/processors/standard/TailFile.java      | 29 ++++++++++----------
 1 file changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/1845f6df/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TailFile.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TailFile.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TailFile.java
index 3d6d3a0..626f7a4 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TailFile.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TailFile.java
@@ -535,21 +535,22 @@ public class TailFile extends AbstractProcessor {
         }
 
         final List<File> rolledOffFiles = new ArrayList<>();
-        final DirectoryStream<Path> dirStream = 
Files.newDirectoryStream(directory.toPath(), rollingPattern);
-        for (final Path path : dirStream) {
-            final File file = path.toFile();
-            final long lastMod = file.lastModified();
-
-            if (file.lastModified() < minTimestamp) {
-                getLogger().debug("Found rolled off file {} but its last 
modified timestamp is before the cutoff (Last Mod = {}, Cutoff = {}) so will 
not consume it",
-                    new Object[] {file, lastMod, minTimestamp});
-
-                continue;
-            } else if (file.equals(tailFile)) {
-                continue;
-            }
+        try (final DirectoryStream<Path> dirStream = 
Files.newDirectoryStream(directory.toPath(), rollingPattern)) {
+            for (final Path path : dirStream) {
+                final File file = path.toFile();
+                final long lastMod = file.lastModified();
+
+                if (file.lastModified() < minTimestamp) {
+                    getLogger().debug("Found rolled off file {} but its last 
modified timestamp is before the cutoff (Last Mod = {}, Cutoff = {}) so will 
not consume it",
+                        new Object[] {file, lastMod, minTimestamp});
+
+                    continue;
+                } else if (file.equals(tailFile)) {
+                    continue;
+                }
 
-            rolledOffFiles.add(file);
+                rolledOffFiles.add(file);
+            }
         }
 
         // Sort files based on last modified timestamp. If same timestamp, use 
filename as a secondary sort, as often

Reply via email to