-
Bug
-
Resolution: Unresolved
-
P2
-
21.0.9
-
generic
-
linux
It is not possible to load awt toolkit(even w/o UI) under security manager.
The patch forJDK-8351907 in openjdk/jdk do not need to use AccessController.doPrivileged, but in jdk 21 and below it must be used.
It was deleted:
https://github.com/openjdk/jdk21u/commit/72d9bd69678dd54ef9e92f9c62073c0c4bf73c41#diff-2b4ac3949cd7faca02daa92815bd0e33d01f6f5b8914de2815d7cc5a864407f5L64
The new code added instead:
String m = System.getProperty("awt.robot.screenshotMethod", defaultMethod);
java.lang.ExceptionInInitializerError
at java.desktop/sun.awt.X11.XToolkit.getNumberOfButtons(XToolkit.java:1570)
at java.desktop/sun.awt.X11.XToolkit.initializeDesktopProperties(XToolkit.java:1549)
at java.desktop/java.awt.Toolkit.getDesktopProperty(Toolkit.java:1541)
at java.desktop/sun.swing.SwingUtilities2.putAATextInfo(SwingUtilities2.java:175)
at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:1530)
at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:161)
at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1564)
at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:591)
at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:633)
at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1408)
at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1521)
at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1487)
at java.desktop/javax.swing.UIManager.getUI(UIManager.java:1060)
at java.desktop/javax.swing.JLabel.updateUI(JLabel.java:288)
at java.desktop/javax.swing.table.DefaultTableCellRenderer.updateUI(DefaultTableCellRenderer.java:165)
at java.desktop/javax.swing.JLabel.<init>(JLabel.java:180)
at java.desktop/javax.swing.JLabel.<init>(JLabel.java:251)
at java.desktop/javax.swing.table.DefaultTableCellRenderer.<init>(DefaultTableCellRenderer.java:114)
at java.desktop/sun.swing.table.DefaultTableCellHeaderRenderer.<init>(DefaultTableCellHeaderRenderer.java:49)
at java.desktop/javax.swing.table.JTableHeader.createDefaultRenderer(JTableHeader.java:678)
at java.desktop/javax.swing.table.JTableHeader.initializeLocalVars(JTableHeader.java:700)
at java.desktop/javax.swing.table.JTableHeader.<init>(JTableHeader.java:187)
at java.desktop/javax.swing.JTable.createDefaultTableHeader(JTable.java:5685)
at java.desktop/javax.swing.JTable.initializeLocalVars(JTable.java:5619)
at java.desktop/javax.swing.JTable.<init>(JTable.java:706)
at java.desktop/javax.swing.JTable.<init>(JTable.java:632)
at TableTest.main(TableTest.java:43)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "awt.robot.screenshotMethod" "read")
at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:488)
at java.base/java.security.AccessController.checkPermission(AccessController.java:1071)
at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:411)
at java.base/java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1146)
at java.base/java.lang.System.getProperty(System.java:1003)
at java.desktop/sun.awt.screencast.XdgDesktopPortal.<clinit>(XdgDesktopPortal.java:65)
... 31 more
The patch for
It was deleted:
https://github.com/openjdk/jdk21u/commit/72d9bd69678dd54ef9e92f9c62073c0c4bf73c41#diff-2b4ac3949cd7faca02daa92815bd0e33d01f6f5b8914de2815d7cc5a864407f5L64
The new code added instead:
String m = System.getProperty("awt.robot.screenshotMethod", defaultMethod);
java.lang.ExceptionInInitializerError
at java.desktop/sun.awt.X11.XToolkit.getNumberOfButtons(XToolkit.java:1570)
at java.desktop/sun.awt.X11.XToolkit.initializeDesktopProperties(XToolkit.java:1549)
at java.desktop/java.awt.Toolkit.getDesktopProperty(Toolkit.java:1541)
at java.desktop/sun.swing.SwingUtilities2.putAATextInfo(SwingUtilities2.java:175)
at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:1530)
at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:161)
at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1564)
at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:591)
at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:633)
at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1408)
at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1521)
at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1487)
at java.desktop/javax.swing.UIManager.getUI(UIManager.java:1060)
at java.desktop/javax.swing.JLabel.updateUI(JLabel.java:288)
at java.desktop/javax.swing.table.DefaultTableCellRenderer.updateUI(DefaultTableCellRenderer.java:165)
at java.desktop/javax.swing.JLabel.<init>(JLabel.java:180)
at java.desktop/javax.swing.JLabel.<init>(JLabel.java:251)
at java.desktop/javax.swing.table.DefaultTableCellRenderer.<init>(DefaultTableCellRenderer.java:114)
at java.desktop/sun.swing.table.DefaultTableCellHeaderRenderer.<init>(DefaultTableCellHeaderRenderer.java:49)
at java.desktop/javax.swing.table.JTableHeader.createDefaultRenderer(JTableHeader.java:678)
at java.desktop/javax.swing.table.JTableHeader.initializeLocalVars(JTableHeader.java:700)
at java.desktop/javax.swing.table.JTableHeader.<init>(JTableHeader.java:187)
at java.desktop/javax.swing.JTable.createDefaultTableHeader(JTable.java:5685)
at java.desktop/javax.swing.JTable.initializeLocalVars(JTable.java:5619)
at java.desktop/javax.swing.JTable.<init>(JTable.java:706)
at java.desktop/javax.swing.JTable.<init>(JTable.java:632)
at TableTest.main(TableTest.java:43)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "awt.robot.screenshotMethod" "read")
at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:488)
at java.base/java.security.AccessController.checkPermission(AccessController.java:1071)
at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:411)
at java.base/java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1146)
at java.base/java.lang.System.getProperty(System.java:1003)
at java.desktop/sun.awt.screencast.XdgDesktopPortal.<clinit>(XdgDesktopPortal.java:65)
... 31 more
- links to
-
Review(master) openjdk/jdk21u/469