On Tue, 22 Mar 2022 17:59:15 GMT, Brent Christian <[email protected]> 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