harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: [drlvm] getting activeMQ to run
Date Sat, 23 Sep 2006 00:20:18 GMT

On Sep 22, 2006, at 7:32 PM, Gregory Shimansky wrote:

> On Friday 22 September 2006 22:39 Geir Magnusson Jr. wrote:
>> First, thanks so much for the fast response and good solution.
>>
>> I don't see any problem with this patch, but you're right - I don't
>> understand why we have it, since Logger should set it's "global"
>> field to getLogger("global") in the static initialization.
>
> Static initialization doesn't guarantee that the field is  
> initialized when you
> need it.
> I've seen it several times in classlib initialization. It happens
> because <clinit> method is called only once in the stack of the  
> calling
> methods (or there could be infinite recursion). If <clinit> is  
> somewhere up
> the stack it won't be called again. But if some field of the class  
> which is
> executing <clinit> up the stack already is needed down the stack by  
> some
> other called classes' methods (called from the up the stack  
> <clinit>), it may
> be still uninitialized.

Hm.

LogManger's initializer does

   Logger root = Logger.getLogger("");

and Logger has

   public final static Logger global = Logger.getLogger("global");

which eventually executes

    LogManager man = LogManager.getLogManager();

and around we go.

So why don't we always run aground with this?  Why is this the first  
time we see this?

>
> I could write a real java test to show that this is possible but  
> this is too
> late at night and I can't think straight. Just trust my word :)
>
> I think such conditions can happen not only on classlib  
> initialization.
>
> -- 
> Gregory Shimansky, Intel Middleware Products Division
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message