On Wed, 13 Oct 2021 14:22:16 GMT, Jaikiran Pai <j...@openjdk.org> wrote:
>> The commit here tries to address an intermittent failure reported in >> https://bugs.openjdk.java.net/browse/JDK-8254267. >> >> The `LogParameters` test case sets the log level to `ALL` for the >> `java.lang.String.class` and then attaches a handler to it. It then proceeds >> to write out a log message at `DEBUG` level and expects the log message to >> have been delivered to the handler. This should all work fine and does work >> fine except for those intermittent failures. >> >> Looking at the output attached in that JBS issue, there's this: >> >> >> command: main LogParameters >> reason: Assumed action based on file name: run main LogParameters >> Mode: agentvm >> >> which states that the test is using `agentvm` mode, since the test itself >> doesn't specify a specific mode. For a test like this one which deals with >> log level management of `java.util.logging` infrastructure, in theory, there >> are chances that some other tests within the same JVM instance might impact >> the output and can potentially contribute to intermittent failures like this >> one. >> >> The commit in this PR tries to address that issue by explicitly running the >> test in `othervm` mode. >> >> P.S: Every once in a while my logins to JBS don't work and if I just wait >> for a few hours, things get sorted on its own. Today is one such occasion - >> successful login, but it still shows me as logged out and doesn't allow me >> to do anything. So I decided to directly create this PR instead of first >> commenting there. > > Jaikiran Pai has updated the pull request incrementally with one additional > commit since the last revision: > > fix copyright year Hello Daniel, > You need to stick the logger returned by > `Logger.getLogger(String.class.getName())` into a static variable to prevent > it from being garbage collected. Indeed, if you don't do that, there will be > only weak references to that logger, and the next call to > `Logger.getLogger(String.class.getName())` might return a brand new instance. You are right. Good catch. I hadn't thought of that aspect at all. I've now updated the PR to create the logger instance in a static field. ------------- PR: https://git.openjdk.java.net/jdk/pull/5927