`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());