Revision: 5385
http://sourceforge.net/p/jump-pilot/code/5385
Author: edso
Date: 2017-03-19 12:08:00 +0000 (Sun, 19 Mar 2017)
Log Message:
-----------
try to fix
> java.util.MissingResourceException: Can't find bundle for base name
> language\wfs\messages, locale fr_FR
> at
> java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564)
> at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387)
> at java.util.ResourceBundle.getBundle(ResourceBundle.java:1082)
> at com.vividsolutions.jump.I18N.init(I18N.java:127)
> at com.vividsolutions.jump.I18N.<init>(I18N.java:94)
> at com.vividsolutions.jump.I18N.getInstance(I18N.java:245)
> at com.vividsolutions.jump.I18N.getMessage(I18N.java:416)
> at com.vividsolutions.jump.I18N.getMessage(I18N.java:441)
> at de.latlon.deejump.wfs.i18n.I18N.get(I18N.java:25)
> at de.latlon.deejump.wfs.plugin.WFSPlugIn.i18n(WFSPlugIn.java:328)
> at de.latlon.deejump.wfs.plugin.WFSPlugIn.execute(WFSPlugIn.java:110)
...
Modified Paths:
--------------
core/trunk/src/com/vividsolutions/jump/I18N.java
Modified: core/trunk/src/com/vividsolutions/jump/I18N.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/I18N.java 2017-03-18 15:47:07 UTC
(rev 5384)
+++ core/trunk/src/com/vividsolutions/jump/I18N.java 2017-03-19 12:08:00 UTC
(rev 5385)
@@ -33,11 +33,13 @@
import java.io.File;
import java.text.MessageFormat;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Map;
+import java.util.MissingResourceException;
import java.util.ResourceBundle;
import com.vividsolutions.jump.workbench.Logger;
@@ -123,16 +125,35 @@
private void init() {
ClassLoader cl = classLoader instanceof ClassLoader ? classLoader
: getClass().getClassLoader();
- // load resourcebundle accordingly
- resourceBundle = ResourceBundle.getBundle(resourcePath, locale, cl);
- resourceBundle2 = ResourceBundle.getBundle(resourcePath, new Locale(
+ // load resourcebundles accordingly
+ // selected locale
+ resourceBundle = getBundleOrDummy(resourcePath, locale, cl);
+ // lang only locale
+ resourceBundle2 = getBundleOrDummy(resourcePath, new Locale(
language()), cl);
+ // empty fallback locale (english)
resourceBundle3 = ResourceBundle.getBundle(resourcePath,
new Locale("", ""), cl);
- // apply to system
+ // apply locale to system
applyToRuntime(locale);
}
+ private ResourceBundle getBundleOrDummy(String baseName, Locale
targetLocale, ClassLoader loader){
+ try {
+ return ResourceBundle.getBundle(baseName, locale, loader);
+ } catch (MissingResourceException e) {
+ // return a dummy rb
+ return new ResourceBundle(){
+ protected Object handleGetObject(String key) {
+ return null;
+ }
+ public Enumeration<String> getKeys() {
+ return null;
+ }
+ };
+ }
+ }
+
// remember missing strings, do not flood log
private HashSet<String> missing = new HashSet<>();
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel