From 8baac332638845e7eb08ae973f525268340e04d2 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 14 Jan 2020 14:56:15 +0100 Subject: [PATCH] [jOOQ/jOOQ#9726] FilePattern matches too many files when wildcards are being used --- jOOQ/src/main/java/org/jooq/FilePattern.java | 24 +++++++------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/FilePattern.java b/jOOQ/src/main/java/org/jooq/FilePattern.java index 732a8e5717..eba6f9a1ab 100644 --- a/jOOQ/src/main/java/org/jooq/FilePattern.java +++ b/jOOQ/src/main/java/org/jooq/FilePattern.java @@ -222,19 +222,16 @@ public final class FilePattern { load(file, comparator, null, loader); loaded = true; } + else if (!pattern.contains("*") && !pattern.contains("?")) { + load(new File(basedir, pattern), comparator, null, loader); + loaded = true; + } else { + String prefix = pattern.replaceAll("[*?].*", ""); + File canonical = new File(prefix).getCanonicalFile(); - // [#8336] Relative paths aren't necessarily relative to the - // working directory, but maybe to some subdirectory - if (pattern.contains("*") || pattern.contains("?")) { - String prefix = pattern.replaceAll("[*?].*", ""); - File canonical = new File(prefix).getCanonicalFile(); - - if (canonical.exists()) - file = canonical; - else - file = new File(basedir, prefix); - } + if (canonical.exists()) + file = canonical; else file = basedir.getCanonicalFile(); @@ -291,11 +288,6 @@ public final class FilePattern { load(f, comparator, regex, loader); } } - - // [#7767] Backtrack to a parent directory in case the current file pattern doesn't match yet - else if (!file.exists() && file.getParentFile() != null) { - load(file.getParentFile(), comparator, regex, loader); - } } /**