You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by sj...@apache.org on 2021/11/15 21:22:58 UTC

[flink] 01/04: [hotfix][testutils] Read result files recursively

This is an automated email from the ASF dual-hosted git repository.

sjwiesman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git

commit df2c47dd7bb942334596f19eadd63ac9efe66494
Author: sjwiesman <sj...@gmail.com>
AuthorDate: Tue Nov 9 12:23:20 2021 -0600

    [hotfix][testutils] Read result files recursively
---
 .../org/apache/flink/test/util/TestBaseUtils.java  | 35 +++++++++++++---------
 1 file changed, 21 insertions(+), 14 deletions(-)

diff --git a/flink-test-utils-parent/flink-test-utils/src/main/java/org/apache/flink/test/util/TestBaseUtils.java b/flink-test-utils-parent/flink-test-utils/src/main/java/org/apache/flink/test/util/TestBaseUtils.java
index 9cdac72..a775055 100644
--- a/flink-test-utils-parent/flink-test-utils/src/main/java/org/apache/flink/test/util/TestBaseUtils.java
+++ b/flink-test-utils-parent/flink-test-utils/src/main/java/org/apache/flink/test/util/TestBaseUtils.java
@@ -35,7 +35,6 @@ import org.slf4j.LoggerFactory;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -44,6 +43,8 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -303,19 +304,25 @@ public class TestBaseUtils extends TestLogger {
         assertTrue("Result file was not written", result.exists());
 
         if (result.isDirectory()) {
-            return result.listFiles(
-                    new FilenameFilter() {
-
-                        @Override
-                        public boolean accept(File dir, String name) {
-                            for (String p : excludePrefixes) {
-                                if (name.startsWith(p)) {
-                                    return false;
-                                }
-                            }
-                            return true;
-                        }
-                    });
+            try {
+                return Files.walk(result.toPath())
+                        .filter(Files::isRegularFile)
+                        .filter(
+                                path -> {
+                                    for (String prefix : excludePrefixes) {
+                                        if (path.getFileName().startsWith(prefix)) {
+                                            return false;
+                                        }
+                                    }
+
+                                    return true;
+                                })
+                        .map(Path::toFile)
+                        .filter(file -> !file.isHidden())
+                        .toArray(File[]::new);
+            } catch (IOException e) {
+                throw new RuntimeException("Failed to retrieve result files");
+            }
         } else {
             return new File[] {result};
         }