On 1/29/15 3:07 AM, Daniel Fuchs wrote:
On 28/01/15 07:46, Mandy Chung wrote:
com/sun/management/internal/PlatformMBeanProviderImpl.java
line 43: does this mxbeanList have to be created lazily?
Would it be better to make it a final field and create it at the
constructor?
Hi Mandy,
I was the one to suggest the lazy initialization.
Given that the constructor is going to be invoked by the
ServiceLoader, I thought it would be better to delay any
heavy initialization until such time that the loaded
service provider is actually used.
These providers will need to be loaded and the mxbeanList will be looked
at except for the cases that we are sure that the MXBean only comes from
the default provider. I see the cost of constructing mxbeanList
involves loading several classes. If performance is an issue, perhaps
the fast-path would be in ManagementFactory to defer loading providers
and may be better to follow up the performance side in the second phase
(that I expect more changes to sun/management classes)
You may want to consider using limited doPrivileged (that can be done in
the second phase).
Mandy
best regards,
-- daniel