RFR: 8352109: java/awt/Desktop/MailTest.java fails in platforms where Action.MAIL is not supported [v2]

Alexey Ivanov aivanov at openjdk.org
Tue Mar 18 20:41:08 UTC 2025


On Tue, 18 Mar 2025 18:37:09 GMT, Manukumar V S <mvs at openjdk.org> wrote:

>> **Issue**
>> java/awt/Desktop/MailTest.java fails in platforms where Action.MAIL is not supported
>> 
>> **Reason**
>> In `MailTest.java`, there is a condition check(`if (!desktop.isSupported(Desktop.Action.MAIL))`) which will force pass the test if the corresponding 'Action' is not supported by the platform. But, apparently, this is not working good and the code flow went past this and fails in desktop.mail() method with an UnsupportedOperationException. 
>> 
>> **Fix**
>> Even though we are calling `PassFailJFrame.forcePass()` if the 'Action.MAIL' is unsupported, the PassFailJFrame just count downs a latch and the actual action will be taken later only(in `awaitAndCheck()`). But at the meantime, the desktop.mail() call gets executed in the constructor of MailTest() and it will result in an UnsupportedOperationException. So, the fix is to return from the constructor immediately if the operation is 'unsupported'.
>> 
>> **Testing**
>> This is a manual test, so it is tested locally and found to be working fine.
>
> Manukumar V S has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Review comments fixed : Added SkippedException instead of forcePass(), Changed the position of imports, formatting changes

Marked as reviewed by aivanov (Reviewer).

test/jdk/java/awt/Desktop/MailTest.java line 106:

> 104:         if (!desktop.isSupported(Desktop.Action.MAIL)) {
> 105:             String errorMessage = "Action.MAIL is not supported.";
> 106:             throw new SkippedException(errorMessage);

Since the error message is used only once, you can inline the message to the constructor.

You may inline `Desktop.getDesktop().isSupported(Desktop.Action.MAIL)` without introducing a local variable if you like.

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

PR Review: https://git.openjdk.org/jdk/pull/24072#pullrequestreview-2696204855
PR Review Comment: https://git.openjdk.org/jdk/pull/24072#discussion_r2001964021


More information about the client-libs-dev mailing list