You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/03/19 02:21:46 UTC

svn commit: r519782 - in /tapestry/tapestry4/trunk: ./ tapestry-examples/Workbench/src/context/ tapestry-framework/src/java/org/apache/tapestry/services/impl/ tapestry-framework/src/test/org/apache/tapestry/services/impl/

Author: jkuhnert
Date: Sun Mar 18 18:21:45 2007
New Revision: 519782

URL: http://svn.apache.org/viewvc?view=rev&rev=519782
Log:
Fixes TAPESTRY-996.

RequestLocaleManager was being extremely picky about incoming locale requests matching filtered locales if the filtered list didn't contain exact matches when the original filter list has country/language specific listings only.

Modified:
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java
    tapestry/tapestry4/trunk/tapestry.iws

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html?view=diff&rev=519782&r1=519781&r2=519782
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/src/context/Dates.html Sun Mar 18 18:21:45 2007
@@ -16,7 +16,6 @@
 <form jwcid="dateForm@Form" delegate="bean:delegate" 
 		clientValidationEnabled="ognl:clientValidationEnabled" 
 		async="true" updateComponents="dateDisplay" >
-		
 <table >
 <tbody>
  <tr>

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java?view=diff&rev=519782&r1=519781&r2=519782
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java Sun Mar 18 18:21:45 2007
@@ -14,13 +14,6 @@
 
 package org.apache.tapestry.services.impl;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
 import org.apache.hivemind.service.ThreadLocale;
 import org.apache.tapestry.TapestryConstants;
 import org.apache.tapestry.TapestryUtils;
@@ -28,6 +21,8 @@
 import org.apache.tapestry.services.RequestLocaleManager;
 import org.apache.tapestry.web.WebRequest;
 
+import java.util.*;
+
 /**
  * Service tapestry.request.RequestLocaleManager. Identifies the Locale provided by the client
  * (either in a Tapestry-specific cookie, or interpolated from the HTTP header.
@@ -111,16 +106,24 @@
         if (_acceptedLocaleNamesSet.isEmpty())
             return getLocale(requestLocaleName);
 
-        while (true)
+        while (requestLocaleName.length() > 0)
         {
             if (_acceptedLocaleNamesSet.contains(requestLocaleName))
                 return getLocale(requestLocaleName);
 
             requestLocaleName = stripTerm(requestLocaleName);
+        }
 
-            if (requestLocaleName.length() == 0)
-                return _defaultLocale;
+        // now try "best match"
+
+        for (Iterator it = _acceptedLocaleNamesSet.iterator(); it.hasNext();) {
+
+            String locale = (String) it.next();
+            if (locale.startsWith(localeName))
+                return getLocale(locale);
         }
+
+        return _defaultLocale;
     }
 
     private String stripTerm(String localeName)

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java?view=diff&rev=519782&r1=519781&r2=519782
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java Sun Mar 18 18:21:45 2007
@@ -14,17 +14,16 @@
 
 package org.apache.tapestry.services.impl;
 
-import static org.easymock.EasyMock.expect;
-
-import java.util.Locale;
-
 import org.apache.hivemind.service.ThreadLocale;
 import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.TapestryConstants;
 import org.apache.tapestry.services.CookieSource;
 import org.apache.tapestry.web.WebRequest;
+import static org.easymock.EasyMock.expect;
 import org.testng.annotations.Test;
 
+import java.util.Locale;
+
 /**
  * Tests for {@link org.apache.tapestry.services.impl.RequestLocaleManagerImpl}.
  * 
@@ -48,7 +47,7 @@
         return threadLocale;
     }
 
-    public void testSuppliedByRequest()
+    public void test_Supplied_By_Request()
     {
         CookieSource source = newMock(CookieSource.class);
         
@@ -103,22 +102,22 @@
         verify();
     }
 
-    public void testJustLanguage()
+    public void test_Just_Language()
     {
         attempt("en", Locale.ENGLISH);
     }
 
-    public void testLanguageAndCountry()
+    public void test_Language_And_Country()
     {
         attempt("fr_FR", Locale.FRANCE);
     }
 
-    public void testWithVariant()
+    public void test_With_Variant()
     {
         attempt("en_US_Bahstohn", new Locale("en", "US", "Bahstohn"));
     }
 
-    public void testPersist()
+    public void test_Persist()
     {
         Locale locale = Locale.SIMPLIFIED_CHINESE;
 
@@ -140,7 +139,7 @@
         verify();
     }
 
-    public void testPersistNoChange()
+    public void test_Persist_No_Change()
     {
         CookieSource source = newMock(CookieSource.class);
         
@@ -180,7 +179,7 @@
         verify();
     }
 
-    public void testGetLocaleValuesAreCached()
+    public void test_Get_Locale_Values_Are_Cached()
     {
         RequestLocaleManagerImpl manager = new RequestLocaleManagerImpl();
 
@@ -194,7 +193,7 @@
      * Test when filtering of incoming locales is disabled.
      */
 
-    public void testFilterDisabled()
+    public void test_Filter_Disabled()
     {
         RequestLocaleManagerImpl manager = new RequestLocaleManagerImpl();
 
@@ -207,19 +206,31 @@
      * Test with filtering enabled.
      */
 
-    public void testFilterEnabled()
+    public void test_Filter_Enabled()
     {
         RequestLocaleManagerImpl manager = new RequestLocaleManagerImpl();
         manager.setAcceptedLocales("en,fr");
         manager.initializeService();
 
-        assertEquals(Locale.ENGLISH, manager.filterRequestedLocale("en"));
-        assertEquals(Locale.ENGLISH, manager.filterRequestedLocale("en_US"));
-        assertEquals(Locale.FRENCH, manager.filterRequestedLocale("fr"));
-        assertEquals(Locale.FRENCH, manager.filterRequestedLocale("fr_FR"));
+        assertEquals(manager.filterRequestedLocale("en"), Locale.ENGLISH);
+        assertEquals(manager.filterRequestedLocale("en_US"), Locale.ENGLISH);
+        assertEquals(manager.filterRequestedLocale("fr"), Locale.FRENCH);
+        assertEquals(manager.filterRequestedLocale("fr_FR"), Locale.FRENCH);
 
         // Unrecognized locales filter to the first accepted locale.
 
-        assertEquals(Locale.ENGLISH, manager.filterRequestedLocale("foo_bar_BAZ"));
+        assertEquals(manager.filterRequestedLocale("foo_bar_BAZ"), Locale.ENGLISH);
+    }
+
+    public void test_Filter_Best_Guess()
+    {
+        RequestLocaleManagerImpl manager = new RequestLocaleManagerImpl();
+        manager.setAcceptedLocales("en_US,fr_FR");
+        manager.initializeService();
+
+        assertEquals(manager.filterRequestedLocale("en"), Locale.US);
+        assertEquals(manager.filterRequestedLocale("en_GB"), Locale.US);
+        assertEquals(manager.filterRequestedLocale("fr"), Locale.FRANCE);
+        assertEquals(manager.filterRequestedLocale("fr_FR"), Locale.FRANCE);
     }
-}
\ No newline at end of file
+}

Modified: tapestry/tapestry4/trunk/tapestry.iws
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.iws?view=diff&rev=519782&r1=519781&r2=519782
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.iws (original)
+++ tapestry/tapestry4/trunk/tapestry.iws Sun Mar 18 18:21:45 2007
@@ -18,16 +18,9 @@
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.iws" afterPath="$PROJECT_DIR$/tapestry.iws" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-annotations/tapestry-annotations.iml" afterPath="$PROJECT_DIR$/tapestry-annotations/tapestry-annotations.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" afterPath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.ipr" afterPath="$PROJECT_DIR$/tapestry.ipr" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/tapestry-framework.iml" afterPath="$PROJECT_DIR$/tapestry-framework/tapestry-framework.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" afterPath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.iml" afterPath="$PROJECT_DIR$/tapestry.iml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-portlet/tapestry-portlet.iml" afterPath="$PROJECT_DIR$/tapestry-portlet/tapestry-portlet.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/src/context/Dates.html" afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/src/context/Dates.html" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java" />
     </list>
   </component>
   <component name="ChangesViewManager" flattened_view="true" />
@@ -337,14 +330,14 @@
       </UpdatedFiles>
     </UpdateInfo>
   </component>
-  <component name="RunManager" selected="TestNG.TestBindingSource">
-    <tempConfiguration default="false" name="TestBindingSource" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
+  <component name="RunManager" selected="TestNG.TestRequestLocaleManager">
+    <tempConfiguration default="false" name="TestRequestLocaleManager" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
       <module name="tapestry-framework" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
       <option name="SUITE_NAME" />
       <option name="PACKAGE_NAME" value="org.apache.tapestry.services.impl" />
-      <option name="MAIN_CLASS_NAME" value="org.apache.tapestry.services.impl.TestBindingSource" />
+      <option name="MAIN_CLASS_NAME" value="org.apache.tapestry.services.impl.TestRequestLocaleManager" />
       <option name="METHOD_NAME" />
       <option name="GROUP_NAME" />
       <option name="TEST_OBJECT" value="CLASS" />
@@ -548,7 +541,7 @@
     <option name="PERFORM_COMMIT_IN_BACKGROUND" value="false" />
     <option name="PUT_FOCUS_INTO_COMMENT" value="false" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" value="Fixes TAPESTRY-937. Simple stupid indexOf check using &gt; 1 instead of &gt; -1. I'm sure I added this bug at some point." />
+    <option name="LAST_COMMIT_MESSAGE" value="Fixes TAPESTRY-996.&#10;&#10;RequestLocaleManager was being extremely picky about incoming locale requests matching filtered locales if the filtered list didn't contain exact matches when the original filter list has country/language specific listings only." />
     <option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
     <option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
@@ -568,6 +561,7 @@
     <MESSAGE value="Fixes TAPESTRY-872. &#10;&#10;The documented usage of PageAttachListener stated that page properties should be restored before the listener is called. Modified logic so that RequestCycle calls firePageAttached directly and removed the firePageAttached call within AbstractPage.attach" />
     <MESSAGE value="Upgraded commons-fileupload/commons-io." />
     <MESSAGE value="Fixes TAPESTRY-937. Simple stupid indexOf check using &gt; 1 instead of &gt; -1. I'm sure I added this bug at some point." />
+    <MESSAGE value="Fixes TAPESTRY-996.&#10;&#10;RequestLocaleManager was being extremely picky about incoming locale requests matching filtered locales if the filtered list didn't contain exact matches when the original filter list has country/language specific listings only." />
   </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
@@ -584,109 +578,115 @@
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/event/PageAttachListener.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="30" column="39" selection-start="1193" selection-end="1193" vertical-scroll-proportion="0.22998296">
-          <folding />
+        <state line="18" column="38" selection-start="754" selection-end="754" vertical-scroll-proportion="0.07666099">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/UploadPart.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/ITableColumn.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="79" column="34" selection-start="2084" selection-end="2084" vertical-scroll-proportion="0.7410562">
+        <state line="28" column="21" selection-start="1137" selection-end="1137" vertical-scroll-proportion="0.2128821">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/pom.xml">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="62" column="20" selection-start="2337" selection-end="2337" vertical-scroll-proportion="0.40971038">
+        <state line="36" column="0" selection-start="1190" selection-end="1190" vertical-scroll-proportion="0.2044293">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/ServletMultipartDecoder.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="33" column="1" selection-start="1144" selection-end="1144" vertical-scroll-proportion="0.26831347">
+        <state line="72" column="8" selection-start="2473" selection-end="2473" vertical-scroll-proportion="0.6516184">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="jar://$USERPROFILE$/.m2/repository/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2.jar!/org/apache/commons/fileupload/servlet/ServletFileUpload.class">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderFilter.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="16" column="0" selection-start="985" selection-end="985" vertical-scroll-proportion="0.19413288">
+        <state line="34" column="20" selection-start="1253" selection-end="1253" vertical-scroll-proportion="0.19165248">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java">
+    <entry file="file://$PROJECT_DIR$/pom.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="18" column="38" selection-start="754" selection-end="754" vertical-scroll-proportion="0.07666099">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state line="203" column="40" selection-start="7952" selection-end="7952" vertical-scroll-proportion="0.42248723">
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/pom.xml">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/BindingConstants.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="15" column="0" selection-start="705" selection-end="705" vertical-scroll-proportion="0.19165248">
+        <state line="42" column="31" selection-start="1286" selection-end="1286" vertical-scroll-proportion="0.5263158">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-contrib/src/java/org/apache/tapestry/contrib/table/model/ITableColumn.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="28" column="21" selection-start="1137" selection-end="1137" vertical-scroll-proportion="0.2128821">
+        <state line="215" column="0" selection-start="6208" selection-end="6208" vertical-scroll-proportion="0.56558776">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/AbstractMultipartDecoder.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="36" column="0" selection-start="1190" selection-end="1190" vertical-scroll-proportion="0.2044293">
+        <state line="61" column="0" selection-start="1882" selection-end="1882" vertical-scroll-proportion="0.51107323">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/pom.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="72" column="8" selection-start="2473" selection-end="2473" vertical-scroll-proportion="0.6516184">
+        <state line="96" column="11" selection-start="3434" selection-end="3434" vertical-scroll-proportion="0.4250426">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/multipart/MultipartDecoderFilter.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/context/Home.html">
+      <provider editor-type-id="HtmlPreview">
+        <state />
+      </provider>
       <provider selected="true" editor-type-id="text-editor">
-        <state line="34" column="20" selection-start="1253" selection-end="1253" vertical-scroll-proportion="0.19165248">
+        <state line="43" column="11" selection-start="1531" selection-end="1531" vertical-scroll-proportion="0.3728223">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/pom.xml">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/Workbench/src/context/Dates.html">
+      <provider editor-type-id="HtmlPreview">
+        <state />
+      </provider>
       <provider selected="true" editor-type-id="text-editor">
-        <state line="203" column="40" selection-start="7952" selection-end="7952" vertical-scroll-proportion="0.42248723">
+        <state line="18" column="8" selection-start="487" selection-end="487" vertical-scroll-proportion="0.23519164">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/binding/BindingConstants.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/PropertySelection.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="42" column="31" selection-start="1286" selection-end="1286" vertical-scroll-proportion="0.5263158">
+        <state line="47" column="4" selection-start="2214" selection-end="2214" vertical-scroll-proportion="0.4088586">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestBindingSource.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="215" column="0" selection-start="6208" selection-end="6208" vertical-scroll-proportion="0.56558776">
+        <state line="115" column="0" selection-start="3646" selection-end="3646" vertical-scroll-proportion="0.34497446">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/BindingSourceImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="61" column="0" selection-start="1882" selection-end="1882" vertical-scroll-proportion="0.51107323">
+        <state line="223" column="0" selection-start="6092" selection-end="6092" vertical-scroll-proportion="0.7572402">
           <folding />
         </state>
       </provider>