import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.locks.Lock;
import javassist.ClassPool;
}
protected final <V> V runOnClassLoader(final ClassLoader cls, final Callable<V> function) throws Exception {
- final Lock lock = javAssist.getLock();
-
- lock.lock();
- try {
- synchronized (javAssist) {
- javAssist.appendClassLoaderIfMissing(cls);
- return ClassLoaderUtils.withClassLoader(cls, function);
- }
- } finally {
- lock.unlock();
+ synchronized (javAssist) {
+ javAssist.appendClassLoaderIfMissing(cls);
+ return ClassLoaderUtils.withClassLoader(cls, function);
}
}