diff --git a/CHANGES b/CHANGES
index 7870f33..82b8489 100644
--- a/CHANGES
+++ b/CHANGES
@@ -169,6 +169,8 @@
 
   BUG FIXES
 
+    TAJO-2188: Can't start tajo daemon on HDP,CDH (jinho)
+
     TAJO-2184: Can not run Tajo with non-default $TAJO_CONF_DIR (Lee Dongjin via hyunsik)
 
     TAJO-2177: In BroadcastJoinRule, the total volume of broadcast tables should be 
diff --git a/tajo-common/src/main/java/org/apache/tajo/util/ClassUtil.java b/tajo-common/src/main/java/org/apache/tajo/util/ClassUtil.java
index c93b751..d85ce9d 100644
--- a/tajo-common/src/main/java/org/apache/tajo/util/ClassUtil.java
+++ b/tajo-common/src/main/java/org/apache/tajo/util/ClassUtil.java
@@ -57,8 +57,11 @@
   private static void findClasses(Set<Class> matchedClassSet, File root, File file, boolean includeJars,
                                   @Nullable Class type, String packageFilter, @Nullable Predicate predicate) {
     if (file.isDirectory()) {
-      for (File child : file.listFiles()) {
-        findClasses(matchedClassSet, root, child, includeJars, type, packageFilter, predicate);
+      File[] children = file.listFiles();
+      if (children != null) {
+        for (File child : children) {
+          findClasses(matchedClassSet, root, child, includeJars, type, packageFilter, predicate);
+        }
       }
     } else {
       if (file.getName().toLowerCase().endsWith(".jar") && includeJars) {
