NCALayer 1.4 не работает на macOS 15 Sequoia — NullPointerException в JavaFX, окно выбора ключа не открывается

NCALayer 1.4 не работает на macOS 15 Sequoia — окно выбора ключа не открывается (NullPointerException в JavaFX)

Описание проблемы:
При попытке подписать документ на сайте (knp.kgd.gov.kz) WebSocket-соединение устанавливается успешно (статус 101), NCALayer получает запрос method: sign, отвечает версией {"result":{"version":"1.4"}}, но окно выбора ключа/сертификата не появляется. В ответ приходит ошибка:
{"code":"SIGNING_FAILURE","details":"java.util.concurrent.ExecutionException: java.lang.NullPointerException","message":"Signing has failed.","status":false}

Окружение:

  • macOS 15 Sequoia (версия ядра: Darwin 26.x)
  • NCALayer 1.4.0 (последняя доступная версия с сайта pki.gov.kz)
  • Safari 26.2
  • Mac (Apple Silicon / Intel)

Диагностика из логов (~/Library/Application Support/NCALayer/ncalayer.log):

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at com.sun.javafx.font.MacFontFinder.populateFontFileNameMap(MacFontFinder.java:89)
    at com.sun.javafx.font.PrismFontFactory.getFullNameToFileMap(PrismFontFactory.java:1705)
    at com.sun.javafx.font.PrismFontFactory.getFontResource(PrismFontFactory.java:667)
    at com.sun.javafx.font.PrismFontLoader.loadFont(PrismFontLoader.java:206)
    at javafx.scene.text.Font.<init>(Font.java:319)
    at kz.gov.pki.api.layer.fx.dialog.BundleListDialog.getModuleListStage(BundleListDialog.java:329)

Причина:
NCALayer использует JavaFX 8 (bundled Java 8), которая не совместима с macOS 15. Метод MacFontFinder.populateFontFileNameMap падает с NPE при попытке получить список системных шрифтов через macOS API, которое изменилось в новых версиях системы. Из-за этого JavaFX Application Thread крашится и окно выбора ключа никогда не отображается.

Дополнительно в логах видны предупреждения об истёкших сертификатах внутренних OSGi-бандлов:

CertificateExpiredException: NotAfter: Sat Dec 14 04:59:59 ALMT 2024
CertificateExpiredException: NotAfter: Tue Jun 13 23:48:59 ALMT 2023

Попытки обходного решения:
Запуск с флагом -Dprism.text=t2k частично помогает (убирает один из крашей), но NPE в MacFontFinder при загрузке кастомного шрифта из jar-а всё равно происходит.

Запрос:
Просьба обновить версию JavaFX в составе NCALayer до JavaFX 17 LTS или JavaFX 21 LTS, которые имеют нативную поддержку macOS 15 и исправленный MacFontFinder. Это устранит проблему для всех пользователей Mac с macOS 15+.

Временный обходной путь (для других пользователей с той же проблемой):
Пока фикс не выпущен — проблема не решается на стороне пользователя. NCALayer 1.4.0 не работает на macOS 15 Sequoia.