HBASE-11898 CoprocessorHost.Environment should cache class loader instance. (Vladimir Rodionov)

This commit is contained in:
Lars Hofhansl 2014-09-05 09:46:58 -07:00
parent aa05ad1291
commit edac84567f

View File

@ -350,6 +350,7 @@ public abstract class CoprocessorHost<E extends CoprocessorEnvironment> {
Collections.synchronizedList(new ArrayList<HTableInterface>()); Collections.synchronizedList(new ArrayList<HTableInterface>());
private int seq; private int seq;
private Configuration conf; private Configuration conf;
private ClassLoader classLoader;
/** /**
* Constructor * Constructor
@ -359,6 +360,7 @@ public abstract class CoprocessorHost<E extends CoprocessorEnvironment> {
public Environment(final Coprocessor impl, final int priority, public Environment(final Coprocessor impl, final int priority,
final int seq, final Configuration conf) { final int seq, final Configuration conf) {
this.impl = impl; this.impl = impl;
this.classLoader = impl.getClass().getClassLoader();
this.priority = priority; this.priority = priority;
this.state = Coprocessor.State.INSTALLED; this.state = Coprocessor.State.INSTALLED;
this.seq = seq; this.seq = seq;
@ -423,7 +425,7 @@ public abstract class CoprocessorHost<E extends CoprocessorEnvironment> {
@Override @Override
public ClassLoader getClassLoader() { public ClassLoader getClassLoader() {
return impl.getClass().getClassLoader(); return classLoader;
} }
@Override @Override