This is the mail archive of the mauve-patches@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: runFinalization in Classloader.initialize doesn't run on cacao


Jeroen Frijters a écrit :

>Olivier Jolly wrote:
>  
>
>>  while wandering around with Classloaders, I found that the teslet
>>gnu.testlet.java.lang.Classloader.initialize wasn't running 
>>with Cacao.
>>It seems that in the beginning of the test method, it creates an
>>anonymous Classloader and then call System.gc() and
>>System.runFinalization() and expects the finalizer to be ran to set a
>>singleton like variable holder.
>>  While this is ok in jamvm and sun jre 1.5.0, cacao doesn't run the
>>finalizer since runFinalization only gives a hint and not a mandatory
>>order, so it is compliant.
>>  My question is whether I'm missing something and this way of doing
>>brings something in this test or it could be rewritten in a 
>>simpler way, more compliant with the various jvm.
>>    
>>
>
>I'm obviously not aware of an easier (or more robust) way to do this, or
>I would have used it. However, this is a very important test (from a
>security pov), so it has to be in. If Cacao can't or won't support
>System.runFinalization(), I suggest skipping this test.
>
>  
>
Ok, I feared something like this. However, the way this test is written
seems very obscure (to me at least). Could you advise me why is the
class loader created with an exception thrown in the constructor and
then the reference to the semi-created instance  is retrieved in the
finalizer. And then I wonder why it then raises SecurityException
instead of ClassFormatError. I reread about the finalizer semantic and
the ClassLoader api without finding a clue.
Thanks a lot in advance

>Regards,
>Jeroen
>
>  
>
Olivier


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]