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


Reply via email to