RFR: JDK-8014045 - test/java/lang/management/PlatformLoggingMXBean/LoggingMXBeanTest.java failing intermittently
daniel.fuchs at oracle.com
Thu Jun 13 22:17:14 UTC 2013
On 6/13/13 10:05 PM, Mandy Chung wrote:
> I wonder what the list of logger names (loggers1 and loggers2)
> returned by LoggingMXBean contains and that may include loggers in the
> running VM other than the ones created and kept a strong reference by
> the test. In other words, would it be possible for the running VM
> that has loggers that are not created by the test and got GC'ed?
That's exactly my suspicion. But since I haven't reproduced the issue
it's impossible to say for sure.
I could try to print the list - maybe we would see if it already
contains more than two loggers.
> On 6/13/2013 6:47 AM, Daniel Fuchs wrote:
>> Please find below an attempt at fixing
>> This is an intermittent failure which I haven't managed to reproduce,
>> so I am reduced to figure out what could have gone wrong by analyzing
>> the code.
>> AFAICT the NPE is thrown when LoggingMXBean.getLogerLevel(logger)
>> returns null - which I believe can only happen
>> when LogManager.getLogger() returns null.
>> I see that LogManager uses weak references to hold loggers - so my
>> suspicion is that one of the logger whose name had been returned by
>> getLoggerNames() has been gc'ed in between the two calls.
>> I have modified the code to accept this possibility - excluding the
>> two loggers for which the test itself holds a strong reference, as
>> these should not have been gc'ed.
>> I can't guarantee that it will fix the issue, but if it does not,
>> we will at least be able to disregard this possibility :-)
>> -- daniel
More information about the core-libs-dev