> On Jan 13, 2017, at 7:30 AM, Sean Mullan <sean.mul...@oracle.com> wrote:
> 
> On 1/12/17 3:53 PM, Mandy Chung wrote:
>> 
>>> On Jan 11, 2017, at 5:34 AM, Adam Petcher <adam.petc...@oracle.com>
>>> wrote:
>>> 
>>> Please review the following bug fix:
>>> 
>>> http://cr.openjdk.java.net/~apetcher/8168075/webrev.00/
>>> 
>>> This fixes a bug in which a permission check would try to load
>>> resources while the system class loader is being initialized.
>>> Resources cannot be loaded at this time, so this change ensures
>>> that the resources are loaded earlier.
>> 
>> This seems a reasonable approach.  There is a slight overhead for
>> this change when the resource bundle is never used but it’s not an
>> issue since the initialization of a security manager is not cheap
>> anyway.
>> 
>> It may be helpful to add a check to ensure that the resource bundle
>> is loaded either VM.isBooted() or initLevel != 3.  It would make it
>> clear of this circular bootstrapping issue.
>> 
>> You do this in SecurityManager class initialization.  Have you
>> considered doing it in the SecurityManager constructor?  As Claes
>> clarified, SM is loaded but not initialized during early VM startup.
>> So no issue to do it in clinit.  The alternative is to do it in the
>> constructor as lazy initialization.
> 
> I don't see any particular performance advantage of moving it to the 
> constructor. The SM will be initialized and instantiated in phase 3 before it 
> initializes the system classloader. Did you have another concern in mind?
> 

No.  There isn’t any performance difference since such code is invoked when a 
security manager is created.  I’m okay to push this as is.

Perhaps you can look into it as part of JDK-8055206 since JDK-8055206 has the 
initialization code too.

Mandy

Reply via email to