Обновления:
Как уже упоминалось в комментариях, эта ошибка будет исправлена в OpenJFX 12.
Вот код проблемы от com.sun.javafx.logging.PlatformLogger
:
@Override
public String getName() {
throw new UnsupportedOperationException("not implemented");
}
Как вы можете видеть, он ничего не делает, кроме как выдает наблюдаемое исключение.Это верно для всех «реализованных» java.lang.System.Logger
методов.
Если вы следуете коду, как указано в приведенной вами трассировке стека, метод getName
вызывается в конечном итоге, потому что com.sun.webkit.perf.PerfLogger
создается в процессе инициализации WebEngine
и, соответственно,com.sun.webkit.Invoker
занятия.Однако getName
вызывается только при включенном PerfLogger
.
С беглого взгляда PerfLogger
обертывает com.sun.javafx.logging.PlatformLogger
, который сам оборачивает System.Logger
.PerfLogger
включается, если System.Logger
возвращает true для isLoggable(System.Logger.Level.FINE)
во время создания PerfLogger
.
В этом случае в результате этого процесса получается System.Logger
с именем "com.sun.webkit.perf.Locks"
создается.Это означает, что вы можете избежать UnsupportedOperationException
, если сконфигурируете System.Logger
так, чтобы ничего не регистрировалось на Level.FINE
или «ниже».Это сделает PerfLogger
«отключенным», что предотвратит вызов getName
по линии.
Примечание. Это основано на исходном коде OpenJFX 11.0.1.Все упомянутое является подробностью реализации и может быть изменено без уведомления.