Fix a fatal error when asserts are enabled and a locale specified in @DefaultLocale is not in the current list of locales. Patch by: jat Review by: jlabanca git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@6451 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/i18n/rebind/AbstractLocalizableImplCreator.java b/user/src/com/google/gwt/i18n/rebind/AbstractLocalizableImplCreator.java index 396cf2f..e7a7cd9 100644 --- a/user/src/com/google/gwt/i18n/rebind/AbstractLocalizableImplCreator.java +++ b/user/src/com/google/gwt/i18n/rebind/AbstractLocalizableImplCreator.java
@@ -109,7 +109,8 @@ // generated implementations for interface X will be named X_, X_en, // X_en_CA, etc. - GwtLocale generatedLocale = resourceList.findLeastDerivedLocale(locale); + GwtLocale generatedLocale = resourceList.findLeastDerivedLocale(logger, + locale); String localeSuffix = String.valueOf(ResourceFactory.LOCALE_SEPARATOR); localeSuffix += generatedLocale.getAsString(); // Use _ rather than "." in class name, cannot use $
diff --git a/user/src/com/google/gwt/i18n/rebind/AbstractResource.java b/user/src/com/google/gwt/i18n/rebind/AbstractResource.java index 3a81b23..b6c902a 100644 --- a/user/src/com/google/gwt/i18n/rebind/AbstractResource.java +++ b/user/src/com/google/gwt/i18n/rebind/AbstractResource.java
@@ -132,11 +132,12 @@ /** * From the list of locales matched for any resources in this resource list, * choose the one that is least derived from the original search locale. - * + * @param logger logger to use * @param locale originally requested locale * @return least derived matched locale */ - public GwtLocale findLeastDerivedLocale(GwtLocale locale) { + public GwtLocale findLeastDerivedLocale(TreeLogger logger, + GwtLocale locale) { List<GwtLocale> searchList = locale.getCompleteSearchList(); Map<GwtLocale, Integer> derivedIndex = new HashMap<GwtLocale, Integer>(); for (int i = 0; i < searchList.size(); ++i) { @@ -148,8 +149,8 @@ GwtLocale matchLocale = list.get(i).getMatchLocale(); Integer wrappedIdx = derivedIndex.get(matchLocale); if (wrappedIdx == null) { - assert false : "Locale " + matchLocale + " not in searchlist " - + searchList; + logger.log(TreeLogger.WARN, "Locale " + matchLocale + + " not in searchlist " + searchList); continue; } int idx = wrappedIdx;