diff --git a/src/main/java/com/alibaba/druid/filter/FilterManager.java b/src/main/java/com/alibaba/druid/filter/FilterManager.java index 5a44d41106..1b1410e5d6 100644 --- a/src/main/java/com/alibaba/druid/filter/FilterManager.java +++ b/src/main/java/com/alibaba/druid/filter/FilterManager.java @@ -59,6 +59,7 @@ public class FilterManager { Properties filterProperties = new Properties(); loadFilterConfig(filterProperties, ClassLoader.getSystemClassLoader()); + loadFilterConfig(filterProperties, FilterManager.class.getClassLoader()); loadFilterConfig(filterProperties, Thread.currentThread().getContextClassLoader()); return filterProperties; diff --git a/src/test/java/com/alibaba/druid/bvt/filter/FilterManagerTest.java b/src/test/java/com/alibaba/druid/bvt/filter/FilterManagerTest.java index 9f20f2ad01..8a9cfb5726 100644 --- a/src/test/java/com/alibaba/druid/bvt/filter/FilterManagerTest.java +++ b/src/test/java/com/alibaba/druid/bvt/filter/FilterManagerTest.java @@ -13,6 +13,17 @@ import com.alibaba.druid.filter.FilterManager; public class FilterManagerTest extends TestCase { + static { + ClassLoader current = Thread.currentThread().getContextClassLoader(); + try { + Thread.currentThread().setContextClassLoader(null); + + Assert.assertNotNull(FilterManager.getFilter("stat")); + } finally { + Thread.currentThread().setContextClassLoader(current); + } + } + public void test_instance() throws Exception { new FilterManager(); } @@ -38,6 +49,7 @@ public class FilterManagerTest extends TestCase { } Assert.assertNotNull(error); } + public static class ErrorFilter extends FilterAdapter {