RFR: 8283349 : Robustness improvements to java/util/prefs/AddNodeChangeListener.jar

Naoto Sato naoto at openjdk.java.net
Wed Mar 23 17:33:25 UTC 2022


On Tue, 22 Mar 2022 17:59:15 GMT, Brent Christian <bchristi at openjdk.org> wrote:

> Please review this change to the java/util/prefs/AddNodeChangeListener.jar test.
> 
> Although the test specifies "-Djava.util.prefs.userRoot=." to ensure a fresh Preferences on each test run, MacOS does not seem to honor this, and still stores prefs in Library/.
> 
> This test has long suffered intermittent failures. 8255031 added some debugging code; as of that change, the test fails fast as soon as an expected change event is not received. In particular, if the expected event is not received for adding the node, the test exits without removing the node. In this way, on Mac, the node can get "stuck" in the preferences of the machine. Future runs on the machine will already have the node, no node added change event will be generated (because the node was already there), the test will continue to fail without removing the node, etc. This matches observations on some CI machines.  
> 
> This change ensures that:
> * the test node is not present before the test
> * the test runs to completion, including removing the test node
> * the test node is not left behind after the test
> 
> Thanks.

Looks good to me.

test/jdk/java/util/prefs/AddNodeChangeListener.java line 63:

> 61:         } finally {
> 62:             // Make sure test node is not present after the test
> 63:             clearPrefs();

If this call throws a `RuntimeException("Unable to clear...")`, it will override the possible `RuntimeException("Failed")` in the `try` block, but I think it is OK.

-------------

Marked as reviewed by naoto (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/7908


More information about the core-libs-dev mailing list