Author: markt Date: Thu Feb 12 10:02:06 2015 New Revision: 1659191 URL: http://svn.apache.org/r1659191 Log: Use an explicit Locale when converting to lower case.
Modified: tomcat/tc8.0.x/trunk/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/catalina/filters/CorsFilter.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/ (props changed) tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java tomcat/tc8.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java tomcat/tc8.0.x/trunk/test/org/apache/catalina/filters/TestCorsFilter.java tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/buf/TestB2CConverter.java tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Propchange: tomcat/tc8.0.x/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Feb 12 10:02:06 2015 @@ -1 +1 @@ -/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655438,1655441,1655454,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657592,1657607,1657609,1657682,1657 907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659188 +/tomcat/trunk:1636524,1637156,1637176,1637188,1637331,1637684,1637695,1638720-1638725,1639653,1640010,1640083-1640084,1640088,1640275,1640322,1640347,1640361,1640365,1640403,1640410,1640652,1640655-1640658,1640688,1640700-1640883,1640903,1640976,1640978,1641000,1641026,1641038-1641039,1641051-1641052,1641058,1641064,1641300,1641369,1641374,1641380,1641486,1641634,1641656-1641692,1641704,1641707-1641718,1641720-1641722,1641735,1641981,1642233,1642280,1642554,1642564,1642595,1642606,1642668,1642679,1642697,1642699,1642766,1643002,1643045,1643054-1643055,1643066,1643121,1643128,1643206,1643209-1643210,1643216,1643249,1643270,1643283,1643309-1643310,1643323,1643365-1643366,1643370-1643371,1643465,1643474,1643536,1643570,1643634,1643649,1643651,1643654,1643675,1643731,1643733-1643734,1643761,1643766,1643814,1643937,1643963,1644017,1644169,1644201-1644203,1644321,1644323,1644516,1644523,1644529,1644535,1644730,1644768,1644784-1644785,1644790,1644793,1644815,1644884,1644886,1644890,1644892 ,1644910,1644924,1644929-1644930,1644935,1644989,1645011,1645247,1645355,1645357-1645358,1645455,1645465,1645469,1645471,1645473,1645475,1645486-1645488,1645626,1645641,1645685,1645743,1645763,1645951-1645953,1645955,1645993,1646098-1646106,1646178,1646220,1646302,1646304,1646420,1646470-1646471,1646476,1646559,1646717-1646723,1646773,1647026,1647042,1647530,1647655,1648304,1648815,1648907,1650081,1650365,1651116,1651120,1651280,1651470,1652938,1652970,1653041,1653471,1653550,1653574,1653797,1653815-1653816,1653819,1653840,1653857,1653888,1653972,1654013,1654030,1654050,1654123,1654148,1654159,1654513,1654515,1654517,1654522,1654524,1654725,1654735,1654766,1654785,1654851-1654852,1654978,1655122-1655124,1655126-1655127,1655129-1655130,1655132-1655133,1655312,1655438,1655441,1655454,1655558,1656087,1656299,1656319,1656331,1656345,1656350,1656590,1656648-1656650,1656657,1657041,1657054,1657374,1657492,1657510,1657565,1657580,1657584,1657586,1657589,1657592,1657607,1657609,1657682,1657 907,1658207,1658734,1658781,1658790,1658799,1658802,1658804,1658833,1658840,1658966,1659043,1659053,1659059,1659188-1659189 Modified: tomcat/tc8.0.x/trunk/java/org/apache/catalina/filters/CorsFilter.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/catalina/filters/CorsFilter.java?rev=1659191&r1=1659190&r2=1659191&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/catalina/filters/CorsFilter.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/catalina/filters/CorsFilter.java Thu Feb 12 10:02:06 2015 @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Set; import javax.servlet.Filter; @@ -321,9 +322,8 @@ public final class CorsFilter implements CORSRequestType requestType = checkRequestType(request); if (requestType != CORSRequestType.PRE_FLIGHT) { - throw new IllegalArgumentException( - sm.getString("corsFilter.wrongType1", - CORSRequestType.PRE_FLIGHT.name().toLowerCase())); + throw new IllegalArgumentException(sm.getString("corsFilter.wrongType1", + CORSRequestType.PRE_FLIGHT.name().toLowerCase(Locale.ENGLISH))); } final String origin = request @@ -354,7 +354,7 @@ public final class CorsFilter implements String[] headers = accessControlRequestHeadersHeader.trim().split( ","); for (String header : headers) { - accessControlRequestHeaders.add(header.trim().toLowerCase()); + accessControlRequestHeaders.add(header.trim().toLowerCase(Locale.ENGLISH)); } } @@ -523,7 +523,7 @@ public final class CorsFilter implements request.getHeader(CorsFilter.REQUEST_HEADER_ORIGIN)); request.setAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE, - corsRequestType.name().toLowerCase()); + corsRequestType.name().toLowerCase(Locale.ENGLISH)); break; case ACTUAL: request.setAttribute( @@ -533,7 +533,7 @@ public final class CorsFilter implements request.getHeader(CorsFilter.REQUEST_HEADER_ORIGIN)); request.setAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE, - corsRequestType.name().toLowerCase()); + corsRequestType.name().toLowerCase(Locale.ENGLISH)); break; case PRE_FLIGHT: request.setAttribute( @@ -543,7 +543,7 @@ public final class CorsFilter implements request.getHeader(CorsFilter.REQUEST_HEADER_ORIGIN)); request.setAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE, - corsRequestType.name().toLowerCase()); + corsRequestType.name().toLowerCase(Locale.ENGLISH)); String headers = request.getHeader( REQUEST_HEADER_ACCESS_CONTROL_REQUEST_HEADERS); if (headers == null) { @@ -669,7 +669,7 @@ public final class CorsFilter implements if (contentType == null) { return null; } - String result = contentType.toLowerCase(); + String result = contentType.toLowerCase(Locale.ENGLISH); int firstSemiColonIndex = result.indexOf(';'); if (firstSemiColonIndex > -1) { result = result.substring(0, firstSemiColonIndex); @@ -746,7 +746,7 @@ public final class CorsFilter implements parseStringToSet(allowedHttpHeaders); Set<String> lowerCaseHeaders = new HashSet<>(); for (String header : setAllowedHttpHeaders) { - String lowerCase = header.toLowerCase(); + String lowerCase = header.toLowerCase(Locale.ENGLISH); lowerCaseHeaders.add(lowerCase); } this.allowedHttpHeaders.clear(); Propchange: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Feb 12 10:02:06 2015 @@ -1 +1,2 @@ /commons/proper/fileupload/trunk/src/main/java/org/apache/commons/fileupload:1-1596086 +/tomcat/trunk/java/org/apache/tomcat/util/http/fileupload:1659189 Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java?rev=1659191&r1=1659190&r2=1659191&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/fileupload/util/mime/MimeUtility.java Thu Feb 12 10:02:06 2015 @@ -214,7 +214,7 @@ public final class MimeUtility { } // pull out the character set information (this is the MIME name at this point). - String charset = word.substring(2, charsetPos).toLowerCase(); + String charset = word.substring(2, charsetPos).toLowerCase(Locale.ENGLISH); // now pull out the encoding token the same way. int encodingPos = word.indexOf('?', charsetPos + 1); Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1659191&r1=1659190&r2=1659191&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java (original) +++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Thu Feb 12 10:02:06 2015 @@ -36,6 +36,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.Random; @@ -648,7 +649,7 @@ public class WsWebSocketContainer return; } // Header names are case insensitive so always use lower case - String headerName = line.substring(0, index).trim().toLowerCase(); + String headerName = line.substring(0, index).trim().toLowerCase(Locale.ENGLISH); // Multi-value headers are stored as a single header and the client is // expected to handle splitting into individual values String headerValue = line.substring(index + 1).trim(); Modified: tomcat/tc8.0.x/trunk/test/org/apache/catalina/filters/TestCorsFilter.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/catalina/filters/TestCorsFilter.java?rev=1659191&r1=1659190&r2=1659191&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/test/org/apache/catalina/filters/TestCorsFilter.java (original) +++ tomcat/tc8.0.x/trunk/test/org/apache/catalina/filters/TestCorsFilter.java Thu Feb 12 10:02:06 2015 @@ -18,6 +18,7 @@ package org.apache.catalina.filters; import java.io.IOException; import java.util.LinkedHashSet; +import java.util.Locale; import java.util.Set; import javax.servlet.FilterChain; @@ -60,7 +61,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -93,7 +94,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -125,7 +126,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -158,7 +159,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -196,7 +197,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -232,7 +233,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -269,7 +270,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } /* @@ -306,7 +307,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase())); + CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase(Locale.ENGLISH))); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_HEADERS).equals( "Content-Type")); @@ -348,7 +349,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase())); + CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase(Locale.ENGLISH))); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_HEADERS).equals( "Content-Type")); @@ -414,7 +415,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase())); + CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase(Locale.ENGLISH))); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_HEADERS).equals( "Content-Type")); @@ -452,7 +453,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase())); + CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase(Locale.ENGLISH))); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_HEADERS).equals( "Content-Type")); @@ -490,7 +491,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase())); + CorsFilter.CORSRequestType.PRE_FLIGHT.name().toLowerCase(Locale.ENGLISH))); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_HEADERS).equals( "Content-Type")); @@ -637,7 +638,7 @@ public class TestCorsFilter { TesterFilterConfigs.HTTPS_WWW_APACHE_ORG)); Assert.assertTrue(request.getAttribute( CorsFilter.HTTP_REQUEST_ATTRIBUTE_REQUEST_TYPE).equals( - CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase())); + CorsFilter.CORSRequestType.SIMPLE.name().toLowerCase(Locale.ENGLISH))); } @Test(expected = ServletException.class) Modified: tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/buf/TestB2CConverter.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/buf/TestB2CConverter.java?rev=1659191&r1=1659190&r2=1659191&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/buf/TestB2CConverter.java (original) +++ tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/buf/TestB2CConverter.java Thu Feb 12 10:02:06 2015 @@ -18,6 +18,7 @@ package org.apache.tomcat.util.buf; import java.nio.charset.Charset; import java.nio.charset.MalformedInputException; +import java.util.Locale; import org.junit.Assert; import org.junit.Test; @@ -71,7 +72,7 @@ public class TestB2CConverter { String charsetName = "UNSET"; for (Charset charset : Charset.availableCharsets().values()) { float leftover; - if (charset.name().toLowerCase().startsWith("x-")) { + if (charset.name().toLowerCase(Locale.ENGLISH).startsWith("x-")) { // Non-standard charset that browsers won't be using // Likely something used internally by the JRE continue; Modified: tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/net/TesterSupport.java URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/net/TesterSupport.java?rev=1659191&r1=1659190&r2=1659191&view=diff ============================================================================== --- tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/net/TesterSupport.java (original) +++ tomcat/tc8.0.x/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Thu Feb 12 10:02:06 2015 @@ -22,6 +22,7 @@ import java.io.IOException; import java.io.InputStream; import java.security.KeyStore; import java.security.cert.X509Certificate; +import java.util.Locale; import javax.net.ssl.KeyManager; import javax.net.ssl.KeyManagerFactory; @@ -124,7 +125,7 @@ public final class TesterSupport { } protected static boolean isMacOs() { - return System.getProperty("os.name").toLowerCase().startsWith("mac os x"); + return System.getProperty("os.name").toLowerCase(Locale.ENGLISH).startsWith("mac os x"); } protected static boolean isRenegotiationSupported(Tomcat tomcat) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org