From 365ec240396921b001cce3f3f41b6add83038ba4 Mon Sep 17 00:00:00 2001 From: weipeng2k Date: Thu, 29 Jan 2015 10:24:24 +0800 Subject: [PATCH] loadFilterConfig's source add classloader which loaded FilterManager self. --- .../java/com/alibaba/druid/filter/FilterManager.java | 1 + .../alibaba/druid/bvt/filter/FilterManagerTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) 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 {