improved constructor in JavassistTemplateBuilder class. This improvement is based on https://github.com/msgpack/msgpack-rpc/issues#issue/13.

This commit is contained in:
Muga Nishizawa 2011-03-11 12:24:09 +09:00
parent 7201fcbe0f
commit 86917b0ba7

View File

@ -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;