diff --git common/src/java/org/apache/hadoop/hive/common/JavaUtils.java common/src/java/org/apache/hadoop/hive/common/JavaUtils.java index 7894ec101e..e506fa127d 100644 --- common/src/java/org/apache/hadoop/hive/common/JavaUtils.java +++ common/src/java/org/apache/hadoop/hive/common/JavaUtils.java @@ -225,18 +225,29 @@ public boolean accept(Path path) { } public static class AnyIdDirFilter implements PathFilter { - @Override - public boolean accept(Path path) { - String name = path.getName(); - //todo: what if this is a base? - if (!name.startsWith(DELTA_PREFIX + "_")) return false; - String idStr = name.substring(DELTA_PREFIX.length() + 1, DELTA_PREFIX.length() + 1 + DELTA_DIGITS_LEN); - try { - Long.parseLong(idStr);//what for? sanity check? - } catch (NumberFormatException ex) { - return false; - } - return true; - } + @Override + public boolean accept(Path path) { + String name = path.getName(); + if (name.startsWith(DELTA_PREFIX + "_")) { + String idStr = name.substring(DELTA_PREFIX.length() + 1, + DELTA_PREFIX.length() + 1 + DELTA_DIGITS_LEN); + try { + Long.parseLong(idStr); + } catch (NumberFormatException ex) { + return false; + } + return true; + } + if (name.startsWith(BASE_PREFIX + "_")) { + String idStr = name.substring(BASE_PREFIX.length() + 1); + try { + Long.parseLong(idStr); + } catch (NumberFormatException ex) { + return false; + } + return true; + } + return false; + } } }