You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2010/05/11 22:05:17 UTC

svn commit: r943260 - in /tomcat/trunk: java/org/apache/catalina/core/ java/org/apache/catalina/deploy/ java/org/apache/catalina/manager/ java/org/apache/catalina/manager/util/ java/org/apache/catalina/servlets/ java/org/apache/catalina/ssi/ java/org/a...

Author: markt
Date: Tue May 11 20:05:15 2010
New Revision: 943260

URL: http://svn.apache.org/viewvc?rev=943260&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49226
Ensure case conversion behaves as expected
Patch provided by sebb

Modified:
    tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java
    tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java
    tomcat/trunk/java/org/apache/catalina/core/StandardHost.java
    tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java
    tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
    tomcat/trunk/java/org/apache/catalina/manager/util/SessionUtils.java
    tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java
    tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
    tomcat/trunk/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
    tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java
    tomcat/trunk/java/org/apache/catalina/ssi/SSIProcessor.java
    tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java
    tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
    tomcat/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java
    tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
    tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
    tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java
    tomcat/trunk/java/org/apache/catalina/util/MIME2Java.java
    tomcat/trunk/java/org/apache/tomcat/util/buf/MessageBytes.java
    tomcat/trunk/java/org/apache/tomcat/util/http/AcceptLanguage.java
    tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileItemHeadersImpl.java
    tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java
    tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ParameterParser.java
    tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ServletFileUpload.java
    tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java
    tomcat/trunk/java/org/apache/tomcat/util/net/URL.java
    tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
    tomcat/trunk/webapps/examples/WEB-INF/classes/examples/ShowSource.java
    tomcat/trunk/webapps/examples/WEB-INF/classes/jsp2/examples/el/Functions.java

Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationPart.java Tue May 11 20:05:15 2010
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.Map;
 
 import javax.servlet.MultipartConfigElement;
@@ -134,7 +135,7 @@ public class ApplicationPart implements 
         String fileName = null;
         String cd = getHeader("Content-Disposition");
         if (cd != null) {
-            String cdl = cd.toLowerCase();
+            String cdl = cd.toLowerCase(Locale.ENGLISH);
             if (cdl.startsWith("form-data") || cdl.startsWith("attachment")) {
                 ParameterParser paramParser = new ParameterParser();
                 paramParser.setLowerCaseNames(true);

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java Tue May 11 20:05:15 2010
@@ -16,6 +16,8 @@
  */
 package org.apache.catalina.core;
 
+import java.util.Locale;
+
 import org.apache.catalina.Container;
 import org.apache.catalina.Engine;
 import org.apache.catalina.Host;
@@ -138,7 +140,7 @@ public class StandardEngine extends Cont
         if (host == null) {
             this.defaultHost = null;
         } else {
-            this.defaultHost = host.toLowerCase();
+            this.defaultHost = host.toLowerCase(Locale.ENGLISH);
         }
         support.firePropertyChange("defaultHost", oldDefaultHost,
                                    this.defaultHost);

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardHost.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardHost.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardHost.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardHost.java Tue May 11 20:05:15 2010
@@ -19,6 +19,7 @@ package org.apache.catalina.core;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.WeakHashMap;
 
@@ -474,7 +475,7 @@ public class StandardHost extends Contai
             throw new IllegalArgumentException
                 (sm.getString("standardHost.nullName"));
 
-        name = name.toLowerCase();      // Internally all names are lower case
+        name = name.toLowerCase(Locale.ENGLISH);      // Internally all names are lower case
 
         String oldName = this.name;
         this.name = name;
@@ -569,7 +570,7 @@ public class StandardHost extends Contai
      */
     public void addAlias(String alias) {
 
-        alias = alias.toLowerCase();
+        alias = alias.toLowerCase(Locale.ENGLISH);
 
         synchronized (aliasesLock) {
             // Skip duplicate aliases
@@ -734,7 +735,7 @@ public class StandardHost extends Contai
      */
     public void removeAlias(String alias) {
 
-        alias = alias.toLowerCase();
+        alias = alias.toLowerCase(Locale.ENGLISH);
 
         synchronized (aliasesLock) {
 

Modified: tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/FilterMap.java Tue May 11 20:05:15 2010
@@ -22,6 +22,7 @@ package org.apache.catalina.deploy;
 import org.apache.catalina.util.RequestUtil;
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Locale;
 
 import javax.servlet.DispatcherType;
 
@@ -139,7 +140,7 @@ public class FilterMap implements Serial
      * representing the state of when filters should be applied.
      */
     public void setDispatcher(String dispatcherString) {
-        String dispatcher = dispatcherString.toUpperCase();
+        String dispatcher = dispatcherString.toUpperCase(Locale.ENGLISH);
         
         if (dispatcher.equals(DispatcherType.FORWARD.name())) {
             // apply FORWARD to the global dispatcherMapping.

Modified: tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/HTMLManagerServlet.java Tue May 11 20:05:15 2010
@@ -30,6 +30,7 @@ import java.util.Comparator;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Random;
 import java.util.TreeMap;
@@ -288,7 +289,7 @@ public final class HTMLManagerServlet ex
                 }
                 filename =
                     extractFilename(warPart.getHeader("Content-Disposition"));
-                if (!filename.toLowerCase().endsWith(".war")) {
+                if (!filename.toLowerCase(Locale.ENGLISH).endsWith(".war")) {
                     message = sm.getString(
                             "htmlManagerServlet.deployUploadNotWar", filename);
                     break;
@@ -305,7 +306,7 @@ public final class HTMLManagerServlet ex
                 // Identify the appBase of the owning Host of this Context
                 // (if any)
                 basename = filename.substring(0,
-                        filename.toLowerCase().indexOf(".war"));
+                        filename.toLowerCase(Locale.ENGLISH).indexOf(".war"));
                 File file = new File(getAppBase(), filename);
                 if (file.exists()) {
                     message = sm.getString(
@@ -358,7 +359,7 @@ public final class HTMLManagerServlet ex
     private String extractFilename(String cd) {
         String fileName = null;
         if (cd != null) {
-            String cdl = cd.toLowerCase();
+            String cdl = cd.toLowerCase(Locale.ENGLISH);
             if (cdl.startsWith("form-data") || cdl.startsWith("attachment")) {
                 ParameterParser parser = new ParameterParser();
                 parser.setLowerCaseNames(true);

Modified: tomcat/trunk/java/org/apache/catalina/manager/util/SessionUtils.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/util/SessionUtils.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/util/SessionUtils.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/util/SessionUtils.java Tue May 11 20:05:15 2010
@@ -88,12 +88,12 @@ public class SessionUtils {
                     locale = (Locale) obj;
                     break;
                 }
-                obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i].toLowerCase());
+                obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i].toLowerCase(Locale.ENGLISH));
                 if (null != obj && obj instanceof Locale) {
                     locale = (Locale) obj;
                     break;
                 }
-                obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i].toUpperCase());
+                obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i].toUpperCase(Locale.ENGLISH));
                 if (null != obj && obj instanceof Locale) {
                     locale = (Locale) obj;
                     break;
@@ -183,12 +183,12 @@ public class SessionUtils {
                     user = obj;
                     break;
                 }
-                obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i].toLowerCase());
+                obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i].toLowerCase(Locale.ENGLISH));
                 if (null != obj) {
                     user = obj;
                     break;
                 }
-                obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i].toUpperCase());
+                obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i].toUpperCase(Locale.ENGLISH));
                 if (null != obj) {
                     user = obj;
                     break;

Modified: tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/CGIServlet.java Tue May 11 20:05:15 2010
@@ -1065,7 +1065,7 @@ public final class CGIServlet extends Ht
             String header = null;
             while (headers.hasMoreElements()) {
                 header = null;
-                header = headers.nextElement().toUpperCase();
+                header = headers.nextElement().toUpperCase(Locale.ENGLISH);
                 //REMIND: rewrite multiple headers as if received as single
                 //REMIND: change character set
                 //REMIND: I forgot what the previous REMIND means

Modified: tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java Tue May 11 20:05:15 2010
@@ -30,6 +30,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Locale;
 import java.util.Stack;
 import java.util.TimeZone;
 import java.util.Vector;
@@ -441,8 +442,8 @@ public class WebdavServlet
         if (path.endsWith("/"))
             path = path.substring(0, path.length() - 1);
 
-        if ((path.toUpperCase().startsWith("/WEB-INF")) ||
-            (path.toUpperCase().startsWith("/META-INF"))) {
+        if ((path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")) ||
+            (path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))) {
             resp.sendError(WebdavStatus.SC_FORBIDDEN);
             return;
         }
@@ -718,8 +719,8 @@ public class WebdavServlet
 
         String path = getRelativePath(req);
 
-        if ((path.toUpperCase().startsWith("/WEB-INF")) ||
-            (path.toUpperCase().startsWith("/META-INF"))) {
+        if ((path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")) ||
+            (path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))) {
             resp.sendError(WebdavStatus.SC_FORBIDDEN);
             return;
         }
@@ -1600,16 +1601,16 @@ public class WebdavServlet
         if (debug > 0)
             log("Dest path :" + destinationPath);
 
-        if ((destinationPath.toUpperCase().startsWith("/WEB-INF")) ||
-            (destinationPath.toUpperCase().startsWith("/META-INF"))) {
+        if ((destinationPath.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")) ||
+            (destinationPath.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))) {
             resp.sendError(WebdavStatus.SC_FORBIDDEN);
             return false;
         }
 
         String path = getRelativePath(req);
 
-        if ((path.toUpperCase().startsWith("/WEB-INF")) ||
-            (path.toUpperCase().startsWith("/META-INF"))) {
+        if ((path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")) ||
+            (path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))) {
             resp.sendError(WebdavStatus.SC_FORBIDDEN);
             return false;
         }
@@ -1809,8 +1810,8 @@ public class WebdavServlet
                                    HttpServletResponse resp, boolean setStatus)
             throws IOException {
 
-        if ((path.toUpperCase().startsWith("/WEB-INF")) ||
-            (path.toUpperCase().startsWith("/META-INF"))) {
+        if ((path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")) ||
+            (path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))) {
             resp.sendError(WebdavStatus.SC_FORBIDDEN);
             return false;
         }
@@ -1894,8 +1895,8 @@ public class WebdavServlet
         if (debug > 1)
             log("Delete:" + path);
 
-        if ((path.toUpperCase().startsWith("/WEB-INF")) ||
-            (path.toUpperCase().startsWith("/META-INF"))) {
+        if ((path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")) ||
+            (path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))) {
             errorList.put(path, new Integer(WebdavStatus.SC_FORBIDDEN));
             return;
         }
@@ -2034,8 +2035,8 @@ public class WebdavServlet
 
         // Exclude any resource in the /WEB-INF and /META-INF subdirectories
         // (the "toUpperCase()" avoids problems on Windows systems)
-        if (path.toUpperCase().startsWith("/WEB-INF") ||
-            path.toUpperCase().startsWith("/META-INF"))
+        if (path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF") ||
+            path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))
             return;
 
         CacheEntry cacheEntry = resources.lookupCache(path);
@@ -2327,8 +2328,8 @@ public class WebdavServlet
 
         // Exclude any resource in the /WEB-INF and /META-INF subdirectories
         // (the "toUpperCase()" avoids problems on Windows systems)
-        if (path.toUpperCase().startsWith("/WEB-INF") ||
-            path.toUpperCase().startsWith("/META-INF"))
+        if (path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF") ||
+            path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF"))
             return;
 
         // Retrieving the lock associated with the lock-null resource

Modified: tomcat/trunk/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ssi/ResponseIncludeWrapper.java Tue May 11 20:05:15 2010
@@ -214,7 +214,7 @@ public class ResponseIncludeWrapper exte
     @Override
     public void addDateHeader(String name, long value) {
         super.addDateHeader(name, value);
-        String lname = name.toLowerCase();
+        String lname = name.toLowerCase(Locale.ENGLISH);
         if (lname.equals(LAST_MODIFIED)) {
             lastModified = value;
         }
@@ -223,7 +223,7 @@ public class ResponseIncludeWrapper exte
     @Override
     public void addHeader(String name, String value) {
         super.addHeader(name, value);
-        String lname = name.toLowerCase();
+        String lname = name.toLowerCase(Locale.ENGLISH);
         if (lname.equals(LAST_MODIFIED)) {
             try {
                 synchronized(RFC1123_FORMAT) {
@@ -240,7 +240,7 @@ public class ResponseIncludeWrapper exte
     @Override
     public void setDateHeader(String name, long value) {
         super.setDateHeader(name, value);
-        String lname = name.toLowerCase();
+        String lname = name.toLowerCase(Locale.ENGLISH);
         if (lname.equals(LAST_MODIFIED)) {
             lastModified = value;
         }
@@ -249,7 +249,7 @@ public class ResponseIncludeWrapper exte
     @Override
     public void setHeader(String name, String value) {
         super.setHeader(name, value);
-        String lname = name.toLowerCase();
+        String lname = name.toLowerCase(Locale.ENGLISH);
         if (lname.equals(LAST_MODIFIED)) {
             try {
                 synchronized(RFC1123_FORMAT) {

Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ssi/SSIMediator.java Tue May 11 20:05:15 2010
@@ -22,6 +22,7 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.Set;
 import java.util.TimeZone;
 import org.apache.catalina.util.DateTool;
@@ -181,7 +182,7 @@ public class SSIMediator {
 
 
     public String getVariableValue(String variableName, String encoding) {
-        String lowerCaseVariableName = variableName.toLowerCase();
+        String lowerCaseVariableName = variableName.toLowerCase(Locale.ENGLISH);
         String variableValue = null;
         if (!isNameReserved(lowerCaseVariableName)) {
             //Try getting it externally first, if it fails, try getting the
@@ -189,7 +190,7 @@ public class SSIMediator {
             // value
             variableValue = ssiExternalResolver.getVariableValue(variableName);
             if (variableValue == null) {
-                variableName = variableName.toUpperCase();
+                variableName = variableName.toUpperCase(Locale.ENGLISH);
                 variableValue = ssiExternalResolver
                         .getVariableValue(className + "." + variableName);
             }

Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIProcessor.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ssi/SSIProcessor.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ssi/SSIProcessor.java Tue May 11 20:05:15 2010
@@ -22,6 +22,7 @@ import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.StringWriter;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.StringTokenizer;
 import org.apache.catalina.util.IOTools;
 /**
@@ -134,7 +135,7 @@ public class SSIProcessor {
                         // during the loop
                         String configErrMsg = ssiMediator.getConfigErrMsg();
                         SSICommand ssiCommand =
-                            commands.get(strCmd.toLowerCase());
+                            commands.get(strCmd.toLowerCase(Locale.ENGLISH));
                         String errorMessage = null;
                         if (ssiCommand == null) {
                             errorMessage = "Unknown command: " + strCmd;

Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ssi/SSIServlet.java Tue May 11 20:05:15 2010
@@ -25,6 +25,8 @@ import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.net.URL;
 import java.net.URLConnection;
+import java.util.Locale;
+
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -147,8 +149,8 @@ public class SSIServlet extends HttpServ
                     + path + "'");
         // Exclude any resource in the /WEB-INF and /META-INF subdirectories
         // (the "toUpperCase()" avoids problems on Windows systems)
-        if (path == null || path.toUpperCase().startsWith("/WEB-INF")
-                || path.toUpperCase().startsWith("/META-INF")) {
+        if (path == null || path.toUpperCase(Locale.ENGLISH).startsWith("/WEB-INF")
+                || path.toUpperCase(Locale.ENGLISH).startsWith("/META-INF")) {
             res.sendError(HttpServletResponse.SC_NOT_FOUND, path);
             log("Can't serve file: " + path);
             return;

Modified: tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ssi/SSIServletExternalResolver.java Tue May 11 20:05:15 2010
@@ -25,6 +25,8 @@ import java.net.URLDecoder;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Enumeration;
+import java.util.Locale;
+
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
@@ -150,7 +152,7 @@ public class SSIServletExternalResolver 
 
     protected String getCGIVariable(String name) {
         String retVal = null;
-        String[] nameParts = name.toUpperCase().split("_");
+        String[] nameParts = name.toUpperCase(Locale.ENGLISH).split("_");
         int requiredParts = 2;
         if (nameParts.length == 1) {
             if (nameParts[0].equals("PATH")) {

Modified: tomcat/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ClassLoaderFactory.java Tue May 11 20:05:15 2010
@@ -22,6 +22,7 @@ package org.apache.catalina.startup;
 import java.io.File;
 import java.net.URL;
 import java.util.LinkedHashSet;
+import java.util.Locale;
 import java.util.Set;
 
 import org.apache.catalina.loader.StandardClassLoader;
@@ -110,7 +111,7 @@ public final class ClassLoaderFactory {
                     continue;
                 String filenames[] = directory.list();
                 for (int j = 0; j < filenames.length; j++) {
-                    String filename = filenames[j].toLowerCase();
+                    String filename = filenames[j].toLowerCase(Locale.ENGLISH);
                     if (!filename.endsWith(".jar"))
                         continue;
                     File file = new File(directory, filenames[j]);
@@ -197,7 +198,7 @@ public final class ClassLoaderFactory {
                             + directory.getAbsolutePath());
                     String filenames[] = directory.list();
                     for (int j = 0; j < filenames.length; j++) {
-                        String filename = filenames[j].toLowerCase();
+                        String filename = filenames[j].toLowerCase(Locale.ENGLISH);
                         if (!filename.endsWith(".jar"))
                             continue;
                         File file = new File(directory, filenames[j]);

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Tue May 11 20:05:15 2010
@@ -38,6 +38,7 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
@@ -698,7 +699,7 @@ public class ContextConfig
             // Context path must start with '/'
             pathName = pathName.substring(1).replace('/', '#');
         }
-        if (docBase.toLowerCase().endsWith(".war") && !file.isDirectory() && unpackWARs) {
+        if (docBase.toLowerCase(Locale.ENGLISH).endsWith(".war") && !file.isDirectory() && unpackWARs) {
             URL war = new URL("jar:" + (new File(docBase)).toURI().toURL() + "!/");
             docBase = ExpandWar.expand(host, war, pathName);
             file = new File(docBase);
@@ -706,7 +707,7 @@ public class ContextConfig
             if (context instanceof StandardContext) {
                 ((StandardContext) context).setOriginalDocBase(origDocBase);
             }
-        } else if (docBase.toLowerCase().endsWith(".war") &&
+        } else if (docBase.toLowerCase(Locale.ENGLISH).endsWith(".war") &&
                 !file.isDirectory() && !unpackWARs) {
             URL war =
                 new URL("jar:" + (new File (docBase)).toURI().toURL() + "!/");
@@ -787,7 +788,7 @@ public class ContextConfig
             }
 
             File file = null;
-            if (docBase.toLowerCase().endsWith(".war")) {
+            if (docBase.toLowerCase(Locale.ENGLISH).endsWith(".war")) {
                 file = new File(System.getProperty("java.io.tmpdir"),
                         deploymentCount++ + "-" + docBase + ".war");
             } else {

Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Tue May 11 20:05:15 2010
@@ -31,6 +31,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashMap;
+import java.util.Locale;
 import java.util.Set;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
@@ -583,7 +584,7 @@ public class HostConfig
         for (int i = 0; i < files.length; i++) {
 
             File contextXml = new File(configBase, files[i]);
-            if (files[i].toLowerCase().endsWith(".xml")) {
+            if (files[i].toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
 
                 // Calculate the context path and make sure it is unique
                 String nameTmp = files[i].substring(0, files[i].length() - 4);
@@ -662,7 +663,7 @@ public class HostConfig
                         (contextXml.getAbsolutePath(), new Long(contextXml.lastModified()));
                     deployedApp.redeployResources.put(docBase.getAbsolutePath(),
                         new Long(docBase.lastModified()));
-                    if (docBase.getAbsolutePath().toLowerCase().endsWith(".war")) {
+                    if (docBase.getAbsolutePath().toLowerCase(Locale.ENGLISH).endsWith(".war")) {
                         isExternalWar = true;
                     }
                 } else {
@@ -752,7 +753,7 @@ public class HostConfig
             if (files[i].equalsIgnoreCase("WEB-INF"))
                 continue;
             File dir = new File(appBase, files[i]);
-            if (files[i].toLowerCase().endsWith(".war") && dir.isFile()
+            if (files[i].toLowerCase(Locale.ENGLISH).endsWith(".war") && dir.isFile()
                     && !invalidWars.contains(files[i]) ) {
                 
                 // Calculate the context path and make sure it is unique
@@ -1496,7 +1497,7 @@ public class HostConfig
             }
             deployedApp.redeployResources.put(docBase.getAbsolutePath(),
                                           new Long(docBase.lastModified()));
-            if (docBase.getAbsolutePath().toLowerCase().endsWith(".war")) {
+            if (docBase.getAbsolutePath().toLowerCase(Locale.ENGLISH).endsWith(".war")) {
                 isWar = true;
             }
         }

Modified: tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java (original)
+++ tomcat/trunk/java/org/apache/catalina/util/ExtensionValidator.java Tue May 11 20:05:15 2010
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.NoSuchElementException;
 import java.util.StringTokenizer;
 import java.util.jar.JarInputStream;
@@ -91,7 +92,7 @@ public final class ExtensionValidator {
         // build a list of jar files in the classpath
         while (strTok.hasMoreTokens()) {
             String classpathItem = strTok.nextToken();
-            if (classpathItem.toLowerCase().endsWith(".jar")) {
+            if (classpathItem.toLowerCase(Locale.ENGLISH).endsWith(".jar")) {
                 File item = new File(classpathItem);
                 if (item.isFile()) {
                     try {
@@ -148,7 +149,7 @@ public final class ExtensionValidator {
             NamingEnumeration<Binding> wne =
                 dirContext.listBindings("/META-INF/");
             Binding binding = wne.nextElement();
-            if (binding.getName().toUpperCase().equals("MANIFEST.MF")) {
+            if (binding.getName().toUpperCase(Locale.ENGLISH).equals("MANIFEST.MF")) {
                 Resource resource = (Resource)dirContext.lookup
                                     ("/META-INF/" + binding.getName());
                 inputStream = resource.streamContent();
@@ -180,7 +181,7 @@ public final class ExtensionValidator {
             ne = dirContext.listBindings("WEB-INF/lib/");
             while ((ne != null) && ne.hasMoreElements()) {
                 Binding binding = ne.nextElement();
-                if (!binding.getName().toLowerCase().endsWith(".jar")) {
+                if (!binding.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar")) {
                     continue;
                 }
                 Object obj =
@@ -425,7 +426,7 @@ public final class ExtensionValidator {
                 }
                 File[] files = targetDir.listFiles();
                 for (int i = 0; i < files.length; i++) {
-                    if (files[i].getName().toLowerCase().endsWith(".jar") &&
+                    if (files[i].getName().toLowerCase(Locale.ENGLISH).endsWith(".jar") &&
                             files[i].isFile()) {
                         try {
                             addSystemResource(files[i]);

Modified: tomcat/trunk/java/org/apache/catalina/util/MIME2Java.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/MIME2Java.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/util/MIME2Java.java (original)
+++ tomcat/trunk/java/org/apache/catalina/util/MIME2Java.java Tue May 11 20:05:15 2010
@@ -580,7 +580,7 @@ public class MIME2Java {
      * @see #reverse
      */
     public static String convert(String mimeCharsetName) {
-        return s_enchash.get(mimeCharsetName.toUpperCase());
+        return s_enchash.get(mimeCharsetName.toUpperCase(Locale.ENGLISH));
     }
 
     /**
@@ -598,6 +598,6 @@ public class MIME2Java {
      * @see #convert
      */
     public static String reverse(String encoding) {
-        return s_revhash.get(encoding.toUpperCase());
+        return s_revhash.get(encoding.toUpperCase(Locale.ENGLISH));
     }
 }

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/MessageBytes.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/MessageBytes.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/MessageBytes.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/MessageBytes.java Tue May 11 20:05:15 2010
@@ -19,6 +19,7 @@ package org.apache.tomcat.util.buf;
 
 import java.io.Serializable;
 import java.io.IOException;
+import java.util.Locale;
 
 /**
  * This class is used to represent a subarray of bytes in an HTTP message.
@@ -450,8 +451,8 @@ public final class MessageBytes implemen
     
     public int indexOfIgnoreCase(String s, int starting) {
 	toString();
-	String upper=strValue.toUpperCase();
-	String sU=s.toUpperCase();
+	String upper=strValue.toUpperCase(Locale.ENGLISH);
+	String sU=s.toUpperCase(Locale.ENGLISH);
 	return upper.indexOf( sU, starting );
     }
     

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/AcceptLanguage.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/AcceptLanguage.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/AcceptLanguage.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/AcceptLanguage.java Tue May 11 20:05:15 2010
@@ -94,7 +94,7 @@ public class AcceptLanguage {
                     qIndex < equalIndex) {
                     String qValueStr = language.substring(qValueIndex + 1);
                 language = language.substring(0, qValueIndex);
-                qValueStr = qValueStr.trim().toLowerCase();
+                qValueStr = qValueStr.trim().toLowerCase(Locale.ENGLISH);
                 qValueIndex = qValueStr.indexOf('=');
                 qValue = new Double(0);
                 if (qValueStr.startsWith("q") &&

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileItemHeadersImpl.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileItemHeadersImpl.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileItemHeadersImpl.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileItemHeadersImpl.java Tue May 11 20:05:15 2010
@@ -22,6 +22,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
 
@@ -49,7 +50,7 @@ public class FileItemHeadersImpl impleme
     private final List<String> headerNameList = new ArrayList<String>();
 
     public String getHeader(String name) {
-        String nameLower = name.toLowerCase();
+        String nameLower = name.toLowerCase(Locale.ENGLISH);
         List<String> headerValueList = headerNameToValueListMap.get(nameLower);
         if (null == headerValueList) {
             return null;
@@ -62,7 +63,7 @@ public class FileItemHeadersImpl impleme
     }
 
     public Iterator<String> getHeaders(String name) {
-        String nameLower = name.toLowerCase();
+        String nameLower = name.toLowerCase(Locale.ENGLISH);
         List<String> headerValueList = headerNameToValueListMap.get(nameLower);
         if (null == headerValueList) {
             return Collections.<String>emptyList().iterator();

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/FileUploadBase.java Tue May 11 20:05:15 2010
@@ -21,6 +21,7 @@ import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
@@ -76,7 +77,7 @@ public abstract class FileUploadBase {
         if (contentType == null) {
             return false;
         }
-        if (contentType.toLowerCase().startsWith(MULTIPART)) {
+        if (contentType.toLowerCase(Locale.ENGLISH).startsWith(MULTIPART)) {
             return true;
         }
         return false;
@@ -382,7 +383,7 @@ public abstract class FileUploadBase {
     private String getFileName(String pContentDisposition) {
         String fileName = null;
         if (pContentDisposition != null) {
-            String cdl = pContentDisposition.toLowerCase();
+            String cdl = pContentDisposition.toLowerCase(Locale.ENGLISH);
             if (cdl.startsWith(FORM_DATA) || cdl.startsWith(ATTACHMENT)) {
                 ParameterParser parser = new ParameterParser();
                 parser.setLowerCaseNames(true);
@@ -427,7 +428,7 @@ public abstract class FileUploadBase {
     private String getFieldName(String pContentDisposition) {
         String fieldName = null;
         if (pContentDisposition != null
-                && pContentDisposition.toLowerCase().startsWith(FORM_DATA)) {
+                && pContentDisposition.toLowerCase(Locale.ENGLISH).startsWith(FORM_DATA)) {
             ParameterParser parser = new ParameterParser();
             parser.setLowerCaseNames(true);
             // Parameter parser can handle null input
@@ -738,7 +739,7 @@ public abstract class FileUploadBase {
 
             String contentType = ctx.getContentType();
             if ((null == contentType)
-                    || (!contentType.toLowerCase().startsWith(MULTIPART))) {
+                    || (!contentType.toLowerCase(Locale.ENGLISH).startsWith(MULTIPART))) {
                 throw new InvalidContentTypeException(
                         "the request doesn't contain a "
                         + MULTIPART_FORM_DATA
@@ -838,7 +839,7 @@ public abstract class FileUploadBase {
                     if (fieldName != null) {
                         String subContentType = headers.getHeader(CONTENT_TYPE);
                         if (subContentType != null
-                                &&  subContentType.toLowerCase()
+                                &&  subContentType.toLowerCase(Locale.ENGLISH)
                                         .startsWith(MULTIPART_MIXED)) {
                             currentFieldName = fieldName;
                             // Multiple files associated with this field name

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ParameterParser.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ParameterParser.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ParameterParser.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ParameterParser.java Tue May 11 20:05:15 2010
@@ -17,6 +17,7 @@
 package org.apache.tomcat.util.http.fileupload;
 
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 /**
@@ -319,7 +320,7 @@ public class ParameterParser {
             }
             if ((paramName != null) && (paramName.length() > 0)) {
                 if (this.lowerCaseNames) {
-                    paramName = paramName.toLowerCase();
+                    paramName = paramName.toLowerCase(Locale.ENGLISH);
                 }
                 params.put(paramName, paramValue);
             }

Modified: tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ServletFileUpload.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ServletFileUpload.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ServletFileUpload.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/http/fileupload/ServletFileUpload.java Tue May 11 20:05:15 2010
@@ -18,6 +18,7 @@ package org.apache.tomcat.util.http.file
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Locale;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -61,14 +62,14 @@ public class ServletFileUpload extends F
      */
     public static final boolean isMultipartContent(
             HttpServletRequest request) {
-        if (!"post".equals(request.getMethod().toLowerCase())) {
+        if (!"post".equals(request.getMethod().toLowerCase(Locale.ENGLISH))) {
             return false;
         }
         String contentType = request.getContentType();
         if (contentType == null) {
             return false;
         }
-        if (contentType.toLowerCase().startsWith(MULTIPART)) {
+        if (contentType.toLowerCase(Locale.ENGLISH).startsWith(MULTIPART)) {
             return true;
         }
         return false;

Modified: tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/modeler/OperationInfo.java Tue May 11 20:05:15 2010
@@ -19,6 +19,8 @@
 package org.apache.tomcat.util.modeler;
 
 
+import java.util.Locale;
+
 import javax.management.MBeanOperationInfo;
 import javax.management.MBeanParameterInfo;
 
@@ -64,7 +66,7 @@ public class OperationInfo extends Featu
         if (impact == null)
             this.impact = null;
         else
-            this.impact = impact.toUpperCase();
+            this.impact = impact.toUpperCase(Locale.ENGLISH);
     }
 
 

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/URL.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/URL.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/URL.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/URL.java Tue May 11 20:05:15 2010
@@ -20,6 +20,7 @@ package org.apache.tomcat.util.net;
 
 import java.io.Serializable;
 import java.net.MalformedURLException;
+import java.util.Locale;
 
 
 /**
@@ -110,7 +111,7 @@ public final class URL implements Serial
             for (i = start; !aRef && (i < limit) ; i++) { 
                 c = spec.charAt(i);
                 if (c == ':') {
-                    String s = spec.substring(start, i).toLowerCase();
+                    String s = spec.substring(start, i).toLowerCase(Locale.ENGLISH);
                     // Assume all protocols are valid
                     newProtocol = s;
                     start = i + 1;

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSESocketFactory.java Tue May 11 20:05:15 2010
@@ -39,6 +39,7 @@ import java.security.cert.CollectionCert
 import java.security.cert.PKIXBuilderParameters;
 import java.security.cert.X509CertSelector;
 import java.util.Collection;
+import java.util.Locale;
 import java.util.Vector;
 
 import javax.net.ssl.CertPathTrustManagerParameters;
@@ -533,7 +534,7 @@ public class JSSESocketFactory
         if (keyAlias != null) {
             String alias = keyAlias;
             if (JSSESocketFactory.defaultKeystoreType.equals(keystoreType)) {
-                alias = alias.toLowerCase();
+                alias = alias.toLowerCase(Locale.ENGLISH);
             }
             for(int i=0; i<kms.length; i++) {
                 kms[i] = new JSSEKeyManager((X509KeyManager)kms[i], alias);

Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/examples/ShowSource.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/examples/ShowSource.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/examples/ShowSource.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/examples/ShowSource.java Tue May 11 20:05:15 2010
@@ -21,6 +21,7 @@ import javax.servlet.jsp.*;
 import javax.servlet.jsp.tagext.*;
 
 import java.io.*;
+import java.util.Locale;
 
 /**
  * Display the sources of the JSP file.
@@ -38,8 +39,8 @@ public class ShowSource extends TagSuppo
     @Override
     public int doEndTag() throws JspException {
 	if ((jspFile.indexOf( ".." ) >= 0) ||
-            (jspFile.toUpperCase().indexOf("/WEB-INF/") != 0) ||
-            (jspFile.toUpperCase().indexOf("/META-INF/") != 0))
+            (jspFile.toUpperCase(Locale.ENGLISH).indexOf("/WEB-INF/") != 0) ||
+            (jspFile.toUpperCase(Locale.ENGLISH).indexOf("/META-INF/") != 0))
 	    throw new JspTagException("Invalid JSP file " + jspFile);
 
         InputStream in

Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/jsp2/examples/el/Functions.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/jsp2/examples/el/Functions.java?rev=943260&r1=943259&r2=943260&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/jsp2/examples/el/Functions.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/jsp2/examples/el/Functions.java Tue May 11 20:05:15 2010
@@ -16,6 +16,8 @@
 */
 package jsp2.examples.el;
 
+import java.util.Locale;
+
 /**
  * Defines the functions for the jsp2 example tag library.
  * 
@@ -38,6 +40,6 @@ public class Functions {
     }
 
     public static String caps( String text ) {
-        return text.toUpperCase();
+        return text.toUpperCase(Locale.ENGLISH);
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org