321 |
{ |
{ |
322 |
// Have we already loaded this class? |
// Have we already loaded this class? |
323 |
Class c = findLoadedClass(name); |
Class c = findLoadedClass(name); |
324 |
if (c != null) |
if (c == null) |
|
return c; |
|
|
|
|
|
// Can the class be loaded by a parent? |
|
|
try |
|
325 |
{ |
{ |
326 |
if (parent == null) |
// Can the class be loaded by a parent? |
327 |
|
try |
328 |
{ |
{ |
329 |
c = VMClassLoader.loadClass(name, resolve); |
if (parent == null) |
330 |
if (c != null) |
{ |
331 |
return c; |
c = VMClassLoader.loadClass(name, resolve); |
332 |
|
if (c != null) |
333 |
|
return c; |
334 |
|
} |
335 |
|
else |
336 |
|
{ |
337 |
|
return parent.loadClass(name, resolve); |
338 |
|
} |
339 |
} |
} |
340 |
else |
catch (ClassNotFoundException e) |
341 |
{ |
{ |
|
return parent.loadClass(name, resolve); |
|
342 |
} |
} |
343 |
|
// Still not found, we have to do it ourself. |
344 |
|
c = findClass(name); |
345 |
} |
} |
|
catch (ClassNotFoundException e) |
|
|
{ |
|
|
} |
|
|
// Still not found, we have to do it ourself. |
|
|
c = findClass(name); |
|
346 |
if (resolve) |
if (resolve) |
347 |
resolveClass(c); |
resolveClass(c); |
348 |
return c; |
return c; |