`svn merge -c1598227 ^/tiles/request/branches/TREQ_1_0_X .`
| restore Java6 compatibility
| - (TREQ-19) Please make the significance of underscore (_) in tiles definition filename more obvious
| - http://article.gmane.org/gmane.comp.apache.tiles.devel/681
git-svn-id: https://svn.apache.org/repos/asf/tiles/request/trunk@1598228 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java b/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java
index e612fde..fa9a2ab 100644
--- a/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java
+++ b/tiles-request-api/src/main/java/org/apache/tiles/request/locale/PostfixedApplicationResource.java
@@ -22,7 +22,6 @@
package org.apache.tiles.request.locale;
import java.util.Arrays;
-import java.util.IllformedLocaleException;
import java.util.List;
import java.util.Locale;
import org.apache.tiles.request.ApplicationResource;
@@ -201,6 +200,27 @@
}
private static Locale localeFrom(String localeString) {
+ Locale result;
+ int countryIndex = localeString.indexOf('_');
+ if (countryIndex < 0) {
+ result = new Locale(localeString);
+ } else {
+ int variantIndex = localeString.indexOf('_', countryIndex + 1);
+ if (variantIndex < 0) {
+ result = new Locale(
+ localeString.substring(0, countryIndex),
+ localeString.substring(countryIndex + 1));
+ } else {
+ result = new Locale(
+ localeString.substring(0, countryIndex),
+ localeString.substring(countryIndex + 1, variantIndex),
+ localeString.substring(variantIndex + 1));
+ }
+ }
+ return result;
+ }
+ /*
+ private static Locale java7_localeFrom(String localeString) {
Locale.Builder builder = new Locale.Builder();
try {
int countryIndex = localeString.indexOf('_');
@@ -221,6 +241,7 @@
}
return builder.build();
}
+ */
private static Locale validateLocale(Locale locale) {
List<Locale> availableLocales = Arrays.asList(Locale.getAvailableLocales());