avoid repetitive class loading from 'incomplete' classpaths

This commit is contained in:
Eugene Zhuravlev
2011-12-29 12:33:56 +01:00
parent ee00a74260
commit 391ca55907

View File

@@ -74,16 +74,14 @@ public final class ReflectedProject {
ourProjectsLock.unlock();
}
final ReflectedProject reflectedProj = new ReflectedProject(classLoader);
if (reflectedProj.getProject() != null) { // do not cache partially-loaded stuff
ourProjectsLock.lock();
try {
ourProjects.add(new SoftReference<Pair<ReflectedProject, ClassLoader>>(
new Pair<ReflectedProject, ClassLoader>(reflectedProj, classLoader)
));
}
finally {
ourProjectsLock.unlock();
}
ourProjectsLock.lock();
try {
ourProjects.add(new SoftReference<Pair<ReflectedProject, ClassLoader>>(
new Pair<ReflectedProject, ClassLoader>(reflectedProj, classLoader)
));
}
finally {
ourProjectsLock.unlock();
}
return reflectedProj;
}
@@ -162,6 +160,7 @@ public final class ReflectedProject {
return myTargetClass;
}
@Nullable
public Object getProject() {
return myProject;
}