On 6/13/13 10:05 PM, Mandy Chung wrote:
Daniel,
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.
best regards,
-- daniel
Mandy
On 6/13/2013 6:47 AM, Daniel Fuchs wrote:
Hi,
Please find below an attempt at fixing
test/java/lang/management/PlatformLoggingMXBean/LoggingMXBeanTest.java
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 :-)
<http://cr.openjdk.java.net/~dfuchs/JDK-8014045/webrev.00/>
-- daniel