ICEpdf - MissingResourceException: не удается найти пакет для базового имени org.icepdf.ri.resources.MessageBundle, локаль de_DE во время запуска приложения - PullRequest
0 голосов
/ 15 октября 2019

Приложение использует ICEpdf, и иногда печать невозможна после его запуска.
После перезапуска работает нормально , но делать это каждый раз утомительно.

Исключение в журнале говорит:

..... (own created exception) .....
nested exception is: java.util.MissingResourceException: Can't find bundle for base name org.icepdf.ri.resources.MessageBundle, locale de_DE
    at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
    at java.util.ResourceBundle.getBundleImpl(Unknown Source)
    at java.util.ResourceBundle.getBundle(Unknown Source)
    at org.icepdf.ri.common.SwingController.<init>(SwingController.java:274)
    at org.icepdf.ri.common.SwingController.<init>(SwingController.java:257)
.....

, которая повторяется до перезапуска.

Я проверил использованную библиотеку icepdf-viewer-4.2.2 и в \ org \ icepdf \ ri \ resourcesтам есть файл MessageBundle_de.properties.

Кто-нибудь когда-либо сталкивался с этим и мог бы поддержать / посоветовать, как это исправить?

1 Ответ

0 голосов
/ 01 ноября 2019

Скорее всего, проблема вызвана изменением версии Java с 1.6 на 1.8
Обходной путь заключался в кэшировании используемых пакетов ресурсов. А в случае исключения MissingResourceException во время создания SwingController перехватите его и создайте defaule ResourceBundle:

...
SwingController sc = null;
...
} catch (MissingResourceException e) {
      ResourceBundle bundle = new PropertyResourceBundle(new ByteArrayInputStream(new byte[0]));
      sc = new SwingController(bundle);
}
...

Надеюсь, это поможет кому-то, столкнувшемуся с той же проблемой.

...