Details
-
Bug
-
Resolution: Fixed
-
High
-
3.3.3, 3.4.2
-
None
Description
If a plugin declares an <i18n> module that refers to a nonexistent properties bundle, Bamboo's implementation of I18nBean will throw the following exception every time you try to get any i18n string:
java.util.MissingResourceException: Can't find bundle for base name atlassian-plugin, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:952)
at com.atlassian.bamboo.utils.i18n.DefaultI18nBean.getPluginBundles(DefaultI18nBean.java:228)
at com.atlassian.bamboo.utils.i18n.DefaultI18nBean.getPluginBundles(DefaultI18nBean.java:246)
at com.atlassian.bamboo.utils.i18n.DefaultI18nBean.<init>(DefaultI18nBean.java:69)
at com.atlassian.bamboo.utils.i18n.I18nBeanFactoryImpl.getI18nBean(I18nBeanFactoryImpl.java:59)
This happens not just for the plugin's own code, but any time any other plugin tries to get an i18n string, thus making Bamboo unusable. It shouldn't be so easy for a bad plugin to break the system. This appears to be Bamboo-specific; the other apps seem to ignore the error.
The simplest way to reproduce this is to create a plugin that doesn't have any i18n properties files at all, but that has this element in its atlassian-plugin.xml:
<resource type="i18n" name="i18n" location="nonexistent"/>
(Originally filed this as UPM-1643)