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

Reply via email to