Hi Dave,

> Actully does not this part of the JVM spec basically say it all ...
> 
> 5.3.2 Loading Using a User-defined Class Loader
> The following steps are used to load and thereby create the nonarray
> class or interface C denoted by N using a user-defined class loader L.
> 
> First, the Java virtual machine determines whether L has already been
> recorded as an initiating loader of a class or interface denoted by N.
> If so, this class or interface is C, and no class creation is 
> necessary.
> 
> Otherwise the Java virtual machine invokes loadClass(N ) on L.1 The
> value returned by the invocation is the created class or interface C.
> The Java virtual machine then records that L is an initiating 
> loader of
> C (§5.3.4). The remainder of this section describes this 
> process in more
> detail.

Hehehe, no, it does not say it all.
IMHO the algorithm implemented in the JVM code is buggy, since it assumes too much 
(the details on how much is 'too much' are too long to be explained here).
For example, the JVM spec does not specify what happens when 2 threads try to load the 
same class with the same classloader. 
Nor what happens if a thread waits because it is expecting some state change while 
another thread comes in.
The JVM spec is a spec, ie it says quite a lot, but not too much ;)

Read my previous post, and let's try to figure this out.

Cheers

Simon

_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to