Author: sebb Date: Wed Dec 31 00:50:35 2014 New Revision: 1648637 URL: http://svn.apache.org/r1648637 Log: VALIDATOR-347 toLowerCase() method is Locale-sensitive and should not be used
Modified: commons/proper/validator/trunk/src/changes/changes.xml commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/DomainValidator.java Modified: commons/proper/validator/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/changes/changes.xml?rev=1648637&r1=1648636&r2=1648637&view=diff ============================================================================== --- commons/proper/validator/trunk/src/changes/changes.xml (original) +++ commons/proper/validator/trunk/src/changes/changes.xml Wed Dec 31 00:50:35 2014 @@ -43,6 +43,10 @@ The <action> type attribute can be add,u <body> <release version="1.4.1" date="tba" description="Maintenance release"> + <action dev="sebb" type="fix" issue="VALIDATOR-347" > + toLowerCase() method is Locale-sensitive and should not be used + Fixed 4 instances in DomainValidator + </action> <action dev="adrianc" type="update" issue="VALIDATOR-307"> isValid checks if the given address is only IPV4 address and not IPV6 </action> Modified: commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/DomainValidator.java URL: http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/DomainValidator.java?rev=1648637&r1=1648636&r2=1648637&view=diff ============================================================================== --- commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/DomainValidator.java (original) +++ commons/proper/validator/trunk/src/main/java/org/apache/commons/validator/routines/DomainValidator.java Wed Dec 31 00:50:35 2014 @@ -18,6 +18,7 @@ package org.apache.commons.validator.rou import java.io.Serializable; import java.util.Arrays; +import java.util.Locale; /** * <p><b>Domain name</b> validation routines.</p> @@ -160,7 +161,7 @@ public class DomainValidator implements * @return true if the parameter is an infrastructure TLD */ public boolean isValidInfrastructureTld(String iTld) { - return Arrays.binarySearch(INFRASTRUCTURE_TLDS, (chompLeadingDot(iTld.toLowerCase()))) >= 0; + return Arrays.binarySearch(INFRASTRUCTURE_TLDS, (chompLeadingDot(iTld.toLowerCase(Locale.ENGLISH)))) >= 0; } /** @@ -171,7 +172,7 @@ public class DomainValidator implements * @return true if the parameter is a generic TLD */ public boolean isValidGenericTld(String gTld) { - return Arrays.binarySearch(GENERIC_TLDS, chompLeadingDot(gTld.toLowerCase())) >= 0; + return Arrays.binarySearch(GENERIC_TLDS, chompLeadingDot(gTld.toLowerCase(Locale.ENGLISH))) >= 0; } /** @@ -182,7 +183,7 @@ public class DomainValidator implements * @return true if the parameter is a country code TLD */ public boolean isValidCountryCodeTld(String ccTld) { - return Arrays.binarySearch(COUNTRY_CODE_TLDS, chompLeadingDot(ccTld.toLowerCase())) >= 0; + return Arrays.binarySearch(COUNTRY_CODE_TLDS, chompLeadingDot(ccTld.toLowerCase(Locale.ENGLISH))) >= 0; } /** @@ -193,7 +194,7 @@ public class DomainValidator implements * @return true if the parameter is an local TLD */ public boolean isValidLocalTld(String iTld) { - return Arrays.binarySearch(LOCAL_TLDS, chompLeadingDot(iTld.toLowerCase())) >= 0; + return Arrays.binarySearch(LOCAL_TLDS, chompLeadingDot(iTld.toLowerCase(Locale.ENGLISH))) >= 0; } private String chompLeadingDot(String str) {