diff --git ant/src/org/apache/hadoop/hive/ant/QTestGenTask.java ant/src/org/apache/hadoop/hive/ant/QTestGenTask.java index 85351aa..abb389a 100644 --- ant/src/org/apache/hadoop/hive/ant/QTestGenTask.java +++ ant/src/org/apache/hadoop/hive/ant/QTestGenTask.java @@ -314,7 +314,7 @@ public void execute() throws BuildException { includeOnly = new HashSet(Arrays.asList(includeQueryFile.split(","))); } - List qFiles = new ArrayList(); + List qFiles; HashMap qFilesMap = new HashMap(); File hiveRootDir = null; File queryDir = null; @@ -323,10 +323,10 @@ public void execute() throws BuildException { File logDir = null; try { - if (queryDirectory != null) { - queryDir = new File(queryDirectory); - } + // queryDirectory should not be null + queryDir = new File(queryDirectory); + Set testFiles = new HashSet(); if (queryFile != null && !queryFile.equals("")) { // The user may have passed a list of files - comma seperated for (String qFile : queryFile.split(",")) { @@ -334,27 +334,29 @@ public void execute() throws BuildException { continue; } if (null != queryDir) { - qFiles.add(new File(queryDir, qFile)); + testFiles.add(new File(queryDir, qFile)); } else { - qFiles.add(new File(qFile)); + testFiles.add(new File(qFile)); } } } else if (queryFileRegex != null && !queryFileRegex.equals("")) { - qFiles.addAll(Arrays.asList(queryDir.listFiles( - new QFileRegexFilter(queryFileRegex, includeOnly)))); + for (String regex : queryFileRegex.split(",")) { + testFiles.addAll(Arrays.asList(queryDir.listFiles( + new QFileRegexFilter(regex, includeOnly)))); + } } else if (runDisabled != null && runDisabled.equals("true")) { - qFiles.addAll(Arrays.asList(queryDir.listFiles(new DisabledQFileFilter(includeOnly)))); + testFiles.addAll(Arrays.asList(queryDir.listFiles(new DisabledQFileFilter(includeOnly)))); } else { - qFiles.addAll(Arrays.asList(queryDir.listFiles(new QFileFilter(includeOnly)))); + testFiles.addAll(Arrays.asList(queryDir.listFiles(new QFileFilter(includeOnly)))); } if (excludeQueryFile != null && !excludeQueryFile.equals("")) { // Exclude specified query files, comma separated for (String qFile : excludeQueryFile.split(",")) { if (null != queryDir) { - qFiles.remove(new File(queryDir, qFile)); + testFiles.remove(new File(queryDir, qFile)); } else { - qFiles.remove(new File(qFile)); + testFiles.remove(new File(qFile)); } } } @@ -364,7 +366,8 @@ public void execute() throws BuildException { throw new BuildException("Hive Root Directory " + hiveRootDir.getCanonicalPath() + " does not exist"); } - + + qFiles = new ArrayList(testFiles); Collections.sort(qFiles); for (File qFile : qFiles) { qFilesMap.put(qFile.getName(), relativePath(hiveRootDir, qFile));