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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org