From 86917b0ba7e4068ce3465de01167aa1fca547cea Mon Sep 17 00:00:00 2001 From: Muga Nishizawa Date: Fri, 11 Mar 2011 12:24:09 +0900 Subject: [PATCH] improved constructor in JavassistTemplateBuilder class. This improvement is based on https://github.com/msgpack/msgpack-rpc/issues#issue/13. --- .../template/JavassistTemplateBuilder.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/java/src/main/java/org/msgpack/template/JavassistTemplateBuilder.java b/java/src/main/java/org/msgpack/template/JavassistTemplateBuilder.java index 38bb998f..a4d2e4db 100644 --- a/java/src/main/java/org/msgpack/template/JavassistTemplateBuilder.java +++ b/java/src/main/java/org/msgpack/template/JavassistTemplateBuilder.java @@ -55,7 +55,30 @@ public class JavassistTemplateBuilder extends TemplateBuilder { } private JavassistTemplateBuilder() { - this.pool = ClassPool.getDefault(); + pool = new ClassPool(); + boolean appended = false; + ClassLoader cl = null; + try { + Thread.currentThread().getContextClassLoader(); + if (cl != null) { + pool.appendClassPath(new LoaderClassPath(cl)); + appended = true; + } + } catch (SecurityException e) { + LOG.debug("Cannot append a search path of context classloader", e); + } + try { + ClassLoader cl2 = getClass().getClassLoader(); + if (cl2 != null && cl2 != cl) { + pool.appendClassPath(new LoaderClassPath(cl2)); + appended = true; + } + } catch (SecurityException e) { + LOG.debug("Cannot append a search path of classloader", e); + } + if (!appended) { + pool.appendSystemPath(); + } } protected ClassPool pool;