Index: ql/src/test/queries/clientpositive/repair_hadoop23.q =================================================================== --- ql/src/test/queries/clientpositive/repair_hadoop23.q (revision 1396831) +++ ql/src/test/queries/clientpositive/repair_hadoop23.q (working copy) @@ -18,6 +18,7 @@ dfs -mkdir ../build/ql/test/data/warehouse/repairtable/p1=a/p2=a; dfs -mkdir ../build/ql/test/data/warehouse/repairtable/p1=b/p2=a; +dfs -touchz ../build/ql/test/data/warehouse/repairtable/p1=b/p2=a/datafile; MSCK TABLE repairtable; Index: ql/src/test/queries/clientpositive/repair.q =================================================================== --- ql/src/test/queries/clientpositive/repair.q (revision 1396831) +++ ql/src/test/queries/clientpositive/repair.q (working copy) @@ -19,6 +19,7 @@ dfs -mkdir -p ../build/ql/test/data/warehouse/repairtable/p1=a/p2=a; dfs -mkdir -p ../build/ql/test/data/warehouse/repairtable/p1=b/p2=a; +dfs -touchz ../build/ql/test/data/warehouse/repairtable/p1=b/p2=a/datafile; MSCK TABLE repairtable; Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMetaStoreChecker.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMetaStoreChecker.java (revision 1396831) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMetaStoreChecker.java (working copy) @@ -363,16 +363,18 @@ throws IOException { FileStatus[] statuses = fs.listStatus(basePath); + boolean directoryFound=false; - if (statuses.length == 0) { - allDirs.add(basePath); - } - for (FileStatus status : statuses) { if (status.isDir()) { + directoryFound = true; getAllLeafDirs(status.getPath(), allDirs, fs); } } + + if(!directoryFound){ + allDirs.add(basePath); + } } }