in src/main/java/com/jetbrains/jdi/ClassLoaderReferenceImpl.java [89:121]
public List<ReferenceType> visibleClasses() {
List<ReferenceType> classes = null;
try {
Cache local = (Cache)getCache();
if (local != null) {
classes = local.visibleClasses;
}
if (classes == null) {
JDWP.ClassLoaderReference.VisibleClasses.ClassInfo[]
jdwpClasses = JDWP.ClassLoaderReference.VisibleClasses.
process(vm, this).classes;
classes = new ArrayList<>(jdwpClasses.length);
for (JDWP.ClassLoaderReference.VisibleClasses.ClassInfo jdwpClass : jdwpClasses) {
classes.add(vm.referenceType(jdwpClass.typeID,
jdwpClass.refTypeTag));
}
cachedVisible.addAll(classes);
classes = Collections.unmodifiableList(classes);
if (local != null) {
local.visibleClasses = classes;
if ((vm.traceFlags & VirtualMachine.TRACE_OBJREFS) != 0) {
vm.printTrace(description() +
" temporarily caching visible classes (count = " +
classes.size() + ")");
}
}
}
} catch (JDWPException exc) {
throw exc.toJDIException();
}
return classes;
}