-
Bug
-
Resolution: Fixed
-
P4
-
24
-
b15
-
generic
OS: Linux
Environments: OEL 9/8 Any Kernel aarch64
Failed on Release/Build: JDK_24 - 24.0. 1 7
Is it a Regression in JDK 24 release: N/A
Is it a platform-specific issue: No
General description of the problem:
Test "java/awt/Desktop/MailTest.java": Test case auto fails
Steps to reproduce:
- Run test cases: java/awt/Desktop/MailTest.java
Expected behavior:
The test case should be executed correctly
Actual behavior:
Test case failed automatically
Any non-default VM flags
java.lang.reflect.InvocationTargetException
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1371)
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1346)
at java.desktop/javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1480)
at PassFailJFrame.invokeOnEDT(PassFailJFrame.java:595)
at PassFailJFrame.<init>(PassFailJFrame.java:532)
at PassFailJFrame$Builder.build(PassFailJFrame.java:1831)
at MailTest.main(MailTest.java:113)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:572)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1491)
Caused by: java.lang.UnsupportedOperationException: The MAIL action is not supported on the current platform!
at java.desktop/java.awt.Desktop.checkActionSupport(Desktop.java:378)
at java.desktop/java.awt.Desktop.mail(Desktop.java:517)
at MailTest.<init>(MailTest.java:67)
at PassFailJFrame.createUI(PassFailJFrame.java:649)
JavaTest Message: Test threw exception: java.lang.reflect.InvocationTargetException
JavaTest Message: shutting down test
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.
Environments: OEL 9/8 Any Kernel aarch64
Failed on Release/Build: JDK_24 - 24.0. 1 7
Is it a Regression in JDK 24 release: N/A
Is it a platform-specific issue: No
General description of the problem:
Test "java/awt/Desktop/MailTest.java": Test case auto fails
Steps to reproduce:
- Run test cases: java/awt/Desktop/MailTest.java
Expected behavior:
The test case should be executed correctly
Actual behavior:
Test case failed automatically
Any non-default VM flags
java.lang.reflect.InvocationTargetException
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1371)
at java.desktop/java.awt.EventQueue.invokeAndWait(EventQueue.java:1346)
at java.desktop/javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1480)
at PassFailJFrame.invokeOnEDT(PassFailJFrame.java:595)
at PassFailJFrame.<init>(PassFailJFrame.java:532)
at PassFailJFrame$Builder.build(PassFailJFrame.java:1831)
at MailTest.main(MailTest.java:113)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:572)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1491)
Caused by: java.lang.UnsupportedOperationException: The MAIL action is not supported on the current platform!
at java.desktop/java.awt.Desktop.checkActionSupport(Desktop.java:378)
at java.desktop/java.awt.Desktop.mail(Desktop.java:517)
at MailTest.<init>(MailTest.java:67)
at PassFailJFrame.createUI(PassFailJFrame.java:649)
JavaTest Message: Test threw exception: java.lang.reflect.InvocationTargetException
JavaTest Message: shutting down test
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.
- links to
-
Commit(master) openjdk/jdk/c7f33388
-
Review(master) openjdk/jdk/24072