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