Skip to content

Font error #224

@tobiasBora

Description

@tobiasBora

Thanks for this super cool software. I just gave it a try, and when it starts it prints an error message Unable to load system fonts, no directory is readable:

Image

And the console shows:

$ ./PDF4Teachers
WARNING: Unknown module: PDF4Teachers.master.merged.module specified to --add-reads
WARNING: Unknown module: PDF4Teachers.master.merged.module specified to --add-exports
01:58:15.424 INFO    Main main() Starting PDF4Teachers 1.4.4 | Java 21.0.4 on JFX 22+30 (amd64) on Linux 6.12.32
01:58:15.427 INFO    Main main() Run mode: release | Log level: info

(PDF4Teachers:166841): Gdk-WARNING **: 13:58:16.033: XSetErrorHandler() called with a GDK error trap pushed. Don't do that.
01:58:16.510 INFO    SystemFontsMapper loadFontsFromSystemFiles() Indexing system fonts... (325 fonts)
01:58:16.515 CONSOLE [ERROR] Exception in thread "System fonts loader" 01:58:16.517 CONSOLE [ERROR] java.lang.IllegalStateException: Not on FX application thread; currentThread = System fonts loader
01:58:16.517 CONSOLE [ERROR]    at javafx.graphics@22/com.sun.javafx.tk.Toolkit.checkFxUserThread(Unknown Source)
01:58:16.517 CONSOLE [ERROR]    at javafx.graphics@22/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(Unknown Source)
01:58:16.517 CONSOLE [ERROR]    at javafx.graphics@22/javafx.scene.Parent$3.onProposedChange(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.collections.VetoableListDecorator.setAll(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.collections.VetoableListDecorator.setAll(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.controls@22/javafx.scene.control.skin.LabeledSkinBase.updateChildren(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.controls@22/javafx.scene.control.skin.LabeledSkinBase.lambda$new$11(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.controls@22/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.value.WeakChangeListener.changed(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source)
01:58:16.518 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
01:58:16.519 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(Unknown Source)
01:58:16.519 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.markInvalid(Unknown Source)
01:58:16.519 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.set(Unknown Source)
01:58:16.519 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.set(Unknown Source)
01:58:16.519 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringProperty.setValue(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at javafx.controls@22/javafx.scene.control.Labeled.setText(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/impl.org.controlsfx.skin.NotificationPaneSkin.lambda$new$2(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at javafx.controls@22/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.value.WeakChangeListener.changed(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
01:58:16.520 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.fireValueChangedEvent(Unknown Source)
01:58:16.521 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.markInvalid(Unknown Source)
01:58:16.521 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.set(Unknown Source)
01:58:16.521 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.StringPropertyBase.set(Unknown Source)
01:58:16.521 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane.setText(Unknown Source)
01:58:16.521 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane$7.run(Unknown Source)
01:58:16.521 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane.hideAndThen(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane.show(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.lambda$show$2(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.hideAndThen(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.show(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.show(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.checkPending(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.addToPending(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.windows.MainWindow.showNotification(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.utils.fonts.SystemFontsMapper.getSystemFontsDirs(Unknown Source)
01:58:16.522 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.utils.fonts.SystemFontsMapper.getAllSystemFontFiles(Unknown Source)
01:58:16.523 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.utils.fonts.SystemFontsMapper.lambda$loadFontsFromSystemFiles$3(Unknown Source)
01:58:16.523 CONSOLE [ERROR]    at java.base/java.lang.Thread.run(Unknown Source)
01:58:16.523 CONSOLE [ERROR] Exception in thread "System fonts loader" 01:58:16.523 CONSOLE [ERROR] java.lang.IllegalStateException: Not on FX application thread; currentThread = System fonts loader
01:58:16.523 CONSOLE [ERROR]    at javafx.graphics@22/com.sun.javafx.tk.Toolkit.checkFxUserThread(Unknown Source)
01:58:16.523 CONSOLE [ERROR]    at javafx.graphics@22/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.graphics@22/javafx.scene.Parent$3.onProposedChange(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.collections.VetoableListDecorator.setAll(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.collections.VetoableListDecorator.setAll(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.controls@22/javafx.scene.control.skin.LabeledSkinBase.updateChildren(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.controls@22/javafx.scene.control.skin.LabeledSkinBase.lambda$new$5(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.controls@22/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.value.WeakChangeListener.changed(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
01:58:16.524 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectPropertyBase.markInvalid(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectPropertyBase.set(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.graphics@22/javafx.css.StyleableObjectProperty.set(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectProperty.setValue(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.controls@22/javafx.scene.control.Labeled.setGraphic(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/impl.org.controlsfx.skin.NotificationPaneSkin.lambda$new$3(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.controls@22/com.sun.javafx.scene.control.LambdaMultiplePropertyChangeListenerHandler.lambda$new$1(Unknown Source)
01:58:16.525 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.value.WeakChangeListener.changed(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at javafx.base@22/com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectPropertyBase.markInvalid(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at javafx.base@22/javafx.beans.property.ObjectPropertyBase.set(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane.setGraphic(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane$7.run(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane.hideAndThen(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at org.controlsfx.controls@11.2.1/org.controlsfx.control.NotificationPane.show(Unknown Source)
01:58:16.526 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.lambda$show$2(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.hideAndThen(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.show(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.show(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.checkPending(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.AutoHideNotificationPane.addToPending(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.interfaces.windows.MainWindow.showNotification(Unknown Source)
01:58:16.527 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.utils.fonts.SystemFontsMapper.getSystemFontsDirs(Unknown Source)
01:58:16.528 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.utils.fonts.SystemFontsMapper.getAllSystemFontFiles(Unknown Source)
01:58:16.528 CONSOLE [ERROR]    at fr.clementgre.pdf4teachers/fr.clementgre.pdf4teachers.utils.fonts.SystemFontsMapper.lambda$loadFontsFromSystemFiles$3(Unknown Source)
01:58:16.528 CONSOLE [ERROR]    at java.base/java.lang.Thread.run(Unknown Source)
01:58:16.534 INFO    SystemFontsMapper lambda$loadFontsFromSystemFiles$3() Loaded 0/325 fonts in 0.02s (0 unable to load due to PDFBox restrictions, usually missing tables)

I don't know if it matters, but I use NixOS (via nix-ld), that may uses non-standard directory (notably it does not use /usr etc), but does follow XDG specifications to provide environment variables poiting to appropriate folders etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions