Fixed issue 6, AccessClassLoader not tracking instances properly, not synchronized.

This commit is contained in:
Nathan Sweet 2012-06-13 11:07:24 +00:00
parent 4ef6cb7b08
commit feb316ccd0

View File

@ -10,11 +10,15 @@ class AccessClassLoader extends ClassLoader {
static AccessClassLoader get (Class type) {
ClassLoader parent = type.getClassLoader();
for (int i = 0, n = accessClassLoaders.size(); i < n; i++) {
AccessClassLoader accessClassLoader = accessClassLoaders.get(i);
if (accessClassLoader.getParent() == parent) return accessClassLoader;
synchronized (accessClassLoaders) {
for (int i = 0, n = accessClassLoaders.size(); i < n; i++) {
AccessClassLoader accessClassLoader = accessClassLoaders.get(i);
if (accessClassLoader.getParent() == parent) return accessClassLoader;
}
AccessClassLoader accessClassLoader = new AccessClassLoader(parent);
accessClassLoaders.add(accessClassLoader);
return accessClassLoader;
}
return new AccessClassLoader(parent);
}
private AccessClassLoader (ClassLoader parent) {