Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

graal 22.2.0 ... java awt java.home property not set ... #4875

Closed
iceman567 opened this issue Sep 6, 2022 · 4 comments
Closed

graal 22.2.0 ... java awt java.home property not set ... #4875

iceman567 opened this issue Sep 6, 2022 · 4 comments
Assignees

Comments

@iceman567
Copy link

iceman567 commented Sep 6, 2022

plz help me . thanks

When I trigger the jframe event ..

Toolkit kit = Toolkit.getDefaultToolkit();
Dimension dimension = kit.getScreenSize();

=======================

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int flag = JOptionPane.showConfirmDialog(thiss,"Exit the system or not ?","Prompt",
JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
if (JOptionPane.YES_OPTION == flag) {
System.exit(0);
}
}
});

============================

Exception in thread "AWT-EventQueue-0" java.lang.InternalError: java.lang.reflect.InvocationTargetException
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
at java.security.AccessController.executePrivileged(AccessController.java:169)
at java.security.AccessController.doPrivileged(AccessController.java:83)
at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at sun.font.SunFontManager.getInstance(SunFontManager.java:249)
at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:265)
at sun.swing.SwingUtilities2.getFontMetrics(SwingUtilities2.java:1243)
at javax.swing.JComponent.getFontMetrics(JComponent.java:1646)
at javax.swing.plaf.basic.BasicLabelUI.getPreferredSize(BasicLabelUI.java:246)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1680)
at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1441)
at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1389)
at javax.swing.plaf.basic.BasicListUI$Handler.valueChanged(BasicListUI.java:2785)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:219)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:199)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:246)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:443)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:453)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:497)
at javax.swing.JList.setSelectedIndex(JList.java:2205)
at javax.swing.plaf.basic.BasicComboPopup.setListSelection(BasicComboPopup.java:1234)
at javax.swing.plaf.basic.BasicComboPopup$Handler.itemStateChanged(BasicComboPopup.java:1058)
at javax.swing.JComboBox.fireItemStateChanged(JComboBox.java:1227)
at javax.swing.JComboBox.selectedItemChanged(JComboBox.java:1288)
at javax.swing.JComboBox.contentsChanged(JComboBox.java:1335)
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:123)
at javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxModel.propertyChange(MetalFileChooserUI.java:1180)
at java.beans.PropertyChangeSupport.fire(PropertyChangeSupport.java:341)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:266)
at java.awt.Component.firePropertyChange(Component.java:8731)
at javax.swing.JFileChooser.setFileFilter(JFileChooser.java:1474)
at javax.swing.JFileChooser.addChoosableFileFilter(JFileChooser.java:1149)
at javax.swing.JFileChooser.updateUI(JFileChooser.java:1841)
at javax.swing.JFileChooser.setup(JFileChooser.java:395)
at javax.swing.JFileChooser.(JFileChooser.java:361)
at javax.swing.JFileChooser.(JFileChooser.java:308)
at com.teamdev.jxbrowser.view.swing.internal.FileChooser.(FileChooser.java:27)
at com.teamdev.jxbrowser.view.swing.callback.DefaultOpenFileCallback.lambda$on$0(DefaultOpenFileCallback.java:30)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.awt.EventQueue$4.run(EventQueue.java:721)
at java.awt.EventQueue$4.run(EventQueue.java:715)
at java.security.AccessController.executePrivileged(AccessController.java:169)
at java.security.AccessController.doPrivileged(AccessController.java:91)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:705)
at com.oracle.svm.core.windows.WindowsPlatformThreads.osThreadStartRoutine(WindowsPlatformThreads.java:143)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
... 54 more
Caused by: java.lang.Error: java.home property not set
at sun.awt.FontConfiguration.findFontConfigFile(FontConfiguration.java:182)
at sun.awt.FontConfiguration.(FontConfiguration.java:99)
at sun.awt.windows.WFontConfiguration.(WFontConfiguration.java:41)
at sun.awt.Win32FontManager.createFontConfiguration(Win32FontManager.java:179)
at sun.font.SunFontManager$2.run(SunFontManager.java:379)
at java.security.AccessController.executePrivileged(AccessController.java:169)
at java.security.AccessController.doPrivileged(AccessController.java:83)
at sun.font.SunFontManager.(SunFontManager.java:324)
at sun.awt.Win32FontManager.(Win32FontManager.java:87)
... 56 more

@iceman567 iceman567 changed the title graal 22.2.0 ... awt java.home property not set ... graal 22.2.0 ... java awt java.home property not set ... Sep 6, 2022
@fniephaus
Copy link
Member

Have you created appropriate reachability metadata for your project (e.g., using the trace agent)?

@kristofdho
Copy link

kristofdho commented Sep 11, 2022

@fniephaus sun.awt.FontConfiguration#findFontConfigFile does require the java.home property, together with the fontconfig.bfc file located somewhere in that java home directory. All required for the fontmanager library.
We currently use a workaround to include this bfc file as a resource, and some substitutions in sun.awt.FontConfiguration to use this internal resource instead of looking for one in the java.home dir.
It's a solution that works for us, but not generic enough to put in a PR as it hardcodes the used config file and removes the ability to specify your own config through the sun.awt.fontconfig property.

TLDR, issue comes from using the FontManager library stuff, and can't be solved by using the tracing agent (although there is indeed some JNI configuration required).

@oubidar-Abderrahim oubidar-Abderrahim self-assigned this Sep 12, 2022
@oubidar-Abderrahim
Copy link
Member

@iceman567 please check the workaround provided by @kristofdho or this one #3393 (comment) and let us know if that fixes the issue.

@iceman567
Copy link
Author

iceman567 commented Sep 15, 2022

@iceman567 please check the workaround provided by @kristofdho or this one #3393 (comment) and let us know if that fixes the issue.

step 1: 【important】
System.setProperty("java.home", "./");

step 2:
copying ${java.home}\lib to .\lib in app folder.

${java.home}\lib\fontconfig.bfc
${java.home}\lib\fontconfig.properties.src
${java.home}\lib\psfont.properties.ja
${java.home}\lib\psfontj2d.properties

step 3:
Run successfully

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants