From e8afa8093c8059bdc202cfd3790dbaf7dba5cb3d Mon Sep 17 00:00:00 2001 From: Olyutorskii Date: Wed, 12 Jun 2019 18:20:38 +0900 Subject: [PATCH] use context classloader for java.lang.reflect.Proxy --- .../jp/sfjp/mikutoga/corelib/EmptyProxyFactory.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/jp/sfjp/mikutoga/corelib/EmptyProxyFactory.java b/src/main/java/jp/sfjp/mikutoga/corelib/EmptyProxyFactory.java index e3ce681..3139b11 100644 --- a/src/main/java/jp/sfjp/mikutoga/corelib/EmptyProxyFactory.java +++ b/src/main/java/jp/sfjp/mikutoga/corelib/EmptyProxyFactory.java @@ -38,11 +38,24 @@ public final class EmptyProxyFactory { * @return インタフェースを実装したインスタンス。 */ public static Object buildEmptyProxy(Class... types){ - ClassLoader loader = types[0].getClassLoader(); + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + Object proxy = buildEmptyProxy(loader, types); + return proxy; + } + /** + * 何もしないインタフェース実装のインスタンスを生成する。 + * + *

インタフェースの各メソッド戻り値はvoidでなければならない。 + * + * @param loader class-loader + * @param types インタフェース群 + * @return インタフェースを実装したインスタンス。 + */ + public static Object buildEmptyProxy( + ClassLoader loader, Class... types){ Object proxy = Proxy.newProxyInstance(loader, types, NOTHING_INVOKER); - return proxy; } -- 2.11.0