azkaban-aplcache

Details

diff --git a/azkaban-common/src/main/java/azkaban/project/validator/XmlValidatorManager.java b/azkaban-common/src/main/java/azkaban/project/validator/XmlValidatorManager.java
index 4851f88..8bf2eb5 100644
--- a/azkaban-common/src/main/java/azkaban/project/validator/XmlValidatorManager.java
+++ b/azkaban-common/src/main/java/azkaban/project/validator/XmlValidatorManager.java
@@ -53,7 +53,7 @@ public class XmlValidatorManager implements ValidatorManager {
   public static final String DEFAULT_VALIDATOR_KEY = "Directory Flow";
 
   private static Map<String, Long> resourceTimestamps = new HashMap<String, Long>();
-  private static ClassLoader validatorLoader;
+  private static URLClassLoader validatorLoader;
 
   private Map<String, ProjectValidator> validators;
   private String validatorDirPath;
@@ -108,6 +108,14 @@ public class XmlValidatorManager implements ValidatorManager {
     }
 
     if (reloadResources) {
+      try {
+        if (validatorLoader != null) {
+          validatorLoader.close();
+        }
+      } catch (IOException e) {
+        logger.error("Cannot reload validator classloader.");
+        throw new ValidatorManagerException(e);
+      }
       validatorLoader = new URLClassLoader(resources.toArray(new URL[resources.size()]));
     }
   }