JAMES-1967 All calls to toLowerCase should use Locale.US

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c03eab2c
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c03eab2c
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c03eab2c

Branch: refs/heads/master
Commit: c03eab2ce3a1c65cbad44d8c3c0656774607029e
Parents: 541ee6e
Author: benwa <btell...@linagora.com>
Authored: Fri Mar 17 14:05:27 2017 +0700
Committer: benwa <btell...@linagora.com>
Committed: Tue Mar 21 07:48:05 2017 +0700

----------------------------------------------------------------------
 .../mailbox/model/MailboxAnnotationKey.java     |  4 +-
 .../elasticsearch/json/HeaderCollection.java    |  3 +-
 .../elasticsearch/query/CriterionConverter.java |  5 +-
 .../james/mailbox/maildir/OsDetector.java       |  4 +-
 .../store/mail/model/impl/MessageParser.java    |  7 +-
 .../store/mail/model/impl/PropertyBuilder.java  |  3 +-
 .../store/SearchUtilsMultipartMixedTest.java    | 13 ++--
 .../mailbox/store/SearchUtilsRFC822Test.java    |  9 +--
 .../james/mailbox/store/SearchUtilsTest.java    | 16 ++---
 .../james/ai/classic/BayesianAnalyzer.java      |  3 +-
 .../james/transport/mailets/ClassifyBounce.java |  5 +-
 .../transport/matchers/SenderHostIsLocal.java   |  3 +-
 .../imapmailbox/maildir/util/OsDetector.java    |  4 +-
 .../AllButStartTlsDelimiterChannelHandler.java  |  3 +-
 .../smtp/core/AbstractHookableCmdHandler.java   |  3 +-
 .../smtp/core/fastfail/SpamTrapHandler.java     |  3 +-
 .../james/util/bayesian/BayesianAnalyzer.java   |  3 +-
 .../james/domainlist/hbase/HBaseDomainList.java |  7 +-
 .../james/user/hbase/HBaseUsersRepository.java  |  5 +-
 .../james/user/jcr/JCRUsersRepository.java      |  5 +-
 .../james/domainlist/jpa/JPADomainList.java     | 71 ++++++++++----------
 .../james/user/jpa/JPAUsersRepository.java      |  7 +-
 .../rrt/lib/AbstractRecipientRewriteTable.java  |  5 +-
 .../rrt/lib/RecipientRewriteTableUtil.java      |  5 +-
 .../domainlist/memory/MemoryDomainList.java     | 11 +--
 .../user/memory/MemoryUsersRepository.java      |  7 +-
 .../impl/JamesMailetContext.java                |  6 +-
 .../mailets/XMLRecipientRewriteTable.java       |  5 +-
 .../mailets/jsieve/delivery/SievePoster.java    |  4 +-
 .../mailets/managesieve/ManageSieveMailet.java  |  3 +-
 .../transcode/MessageToCoreToMessage.java       |  3 +-
 .../james/smtpserver/fastfail/URIScanner.java   |  5 +-
 .../james/smtpserver/netty/SMTPServer.java      |  4 +-
 33 files changed, 141 insertions(+), 103 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotationKey.java
----------------------------------------------------------------------
diff --git 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotationKey.java
 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotationKey.java
index bcc644e..b251765 100644
--- 
a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotationKey.java
+++ 
b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxAnnotationKey.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailbox.model;
 
+import java.util.Locale;
+
 import org.apache.commons.lang.StringUtils;
 
 import com.google.common.base.CharMatcher;
@@ -89,7 +91,7 @@ public class MailboxAnnotationKey {
     }
 
     public String asString() {
-        return key.toLowerCase();
+        return key.toLowerCase(Locale.US);
     }
 
     public boolean isParentOrIsEqual(MailboxAnnotationKey key) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
----------------------------------------------------------------------
diff --git 
a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
 
b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
index 709c964..6125ebf 100644
--- 
a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
+++ 
b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
@@ -40,6 +40,7 @@ import org.slf4j.LoggerFactory;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.Optional;
 import java.util.Set;
 import java.util.regex.Matcher;
@@ -81,7 +82,7 @@ public class HeaderCollection {
 
         public Builder add(Field field) {
             Preconditions.checkNotNull(field);
-            String headerName = field.getName().toLowerCase();
+            String headerName = field.getName().toLowerCase(Locale.US);
             String headerValue = field.getBody();
             headers.put(headerName, 
DecoderUtil.decodeEncodedWords(headerValue, DecodeMonitor.SILENT));
             handleSpecificHeader(headerName, headerValue);

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
----------------------------------------------------------------------
diff --git 
a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
 
b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
index dcc4ff6..9e06c87 100644
--- 
a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
+++ 
b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/query/CriterionConverter.java
@@ -29,6 +29,7 @@ import static 
org.elasticsearch.index.query.QueryBuilders.termQuery;
 
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.function.BiFunction;
 import java.util.function.Function;
@@ -243,7 +244,7 @@ public class CriterionConverter {
     private QueryBuilder convertHeader(SearchQuery.HeaderCriterion 
headerCriterion) {
         return 
headerOperatorConverterMap.get(headerCriterion.getOperator().getClass())
             .apply(
-                headerCriterion.getHeaderName().toLowerCase(),
+                headerCriterion.getHeaderName().toLowerCase(Locale.US),
                 headerCriterion.getOperator());
     }
 
@@ -254,7 +255,7 @@ public class CriterionConverter {
     }
 
     private String getFieldNameFromHeaderName(String headerName) {
-        switch (headerName.toLowerCase()) {
+        switch (headerName.toLowerCase(Locale.US)) {
         case HeaderCollection.TO:
             return JsonMessageConstants.TO;
         case HeaderCollection.CC:

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/OsDetector.java
----------------------------------------------------------------------
diff --git 
a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/OsDetector.java
 
b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/OsDetector.java
index 06cb942..75fe97b 100644
--- 
a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/OsDetector.java
+++ 
b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/OsDetector.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailbox.maildir;
 
+import java.util.Locale;
+
 public class OsDetector {
 
     /**
@@ -27,7 +29,7 @@ public class OsDetector {
      * @return windows
      */
     public static boolean isWindows() {
-        String os = System.getProperty("os.name").toLowerCase();
+        String os = System.getProperty("os.name").toLowerCase(Locale.US);
         return (os.contains("win"));
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
index 4b0ef37..c36f9c5 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
@@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.Cid;
@@ -64,8 +65,8 @@ public class MessageParser {
     private static final String CONTENT_DISPOSITION = "Content-Disposition";
     private static final String DEFAULT_CONTENT_TYPE = 
"application/octet-stream";
     private static final List<String> ATTACHMENT_CONTENT_DISPOSITIONS = 
ImmutableList.of(
-            ContentDispositionField.DISPOSITION_TYPE_ATTACHMENT.toLowerCase(),
-            ContentDispositionField.DISPOSITION_TYPE_INLINE.toLowerCase());
+            
ContentDispositionField.DISPOSITION_TYPE_ATTACHMENT.toLowerCase(Locale.US),
+            
ContentDispositionField.DISPOSITION_TYPE_INLINE.toLowerCase(Locale.US));
     private static final Logger LOGGER = 
LoggerFactory.getLogger(MessageParser.class);
 
     public List<MessageAttachment> retrieveAttachments(InputStream 
fullContent) throws MimeException, IOException {
@@ -200,7 +201,7 @@ public class MessageParser {
 
                     @Override
                     public Boolean apply(String dispositionType) {
-                        return 
ATTACHMENT_CONTENT_DISPOSITIONS.contains(dispositionType.toLowerCase());
+                        return 
ATTACHMENT_CONTENT_DISPOSITIONS.contains(dispositionType.toLowerCase(Locale.US));
                     }
                 }).or(false);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
index 152f874..f69a458 100644
--- 
a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
+++ 
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
@@ -43,6 +43,7 @@ import static 
org.apache.james.mailbox.store.mail.model.StandardNames.MIME_SUB_T
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -211,7 +212,7 @@ public class PropertyBuilder {
             }
         }
         for (Map.Entry<String, String> 
valueByLocalName:valuesByLocalName.entrySet()) {
-            properties.add(new SimpleProperty(namespace, 
valueByLocalName.getKey().toLowerCase(), valueByLocalName.getValue()));
+            properties.add(new SimpleProperty(namespace, 
valueByLocalName.getKey().toLowerCase(Locale.US), valueByLocalName.getValue()));
         }
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java
index 0773d48..5f3f55f 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertTrue;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Locale;
 
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.SearchQuery;
@@ -153,12 +154,12 @@ public class SearchUtilsMultipartMixedTest {
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO),
                 row, recent));
         assertTrue(new MessageSearches().isMatch(SearchQuery
-                .bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase()), row,
+                
.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase(Locale.US)), row,
                 recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
         assertTrue(new MessageSearches().isMatch(SearchQuery
                 .bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toUpperCase()), row,
                 recent));
@@ -195,12 +196,12 @@ public class SearchUtilsMultipartMixedTest {
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO),
                 row, recent));
         assertTrue(new MessageSearches().isMatch(SearchQuery
-                .mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase()), row,
+                
.mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase(Locale.US)), row,
                 recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
         assertTrue(new MessageSearches().isMatch(SearchQuery
                 .mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toUpperCase()), row,
                 recent));

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java
index e50934b..c21c730 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.assertTrue;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Locale;
 
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.SearchQuery;
@@ -77,9 +78,9 @@ public class SearchUtilsRFC822Test {
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.bodyContains(RHUBARD), row,
                 recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.bodyContains(RHUBARD
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.bodyContains(RHUBARD
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
     }
 
     @Test
@@ -103,9 +104,9 @@ public class SearchUtilsRFC822Test {
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.mailContains(RHUBARD), row,
                 recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.mailContains(RHUBARD
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.mailContains(RHUBARD
-                .toLowerCase()), row, recent));
+                .toLowerCase(Locale.US)), row, recent));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java
index 96c5e99..2454d86 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java
@@ -206,7 +206,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchLowersHeaderDateAfter() throws Exception {
-        builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+        builder.header(DATE_FIELD.toLowerCase(Locale.US), 
RFC822_SUN_SEP_9TH_2001);
         MailboxMessage row = builder.build();
         assertTrue(new 
MessageSearches().isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(9,
                 9, 2000), DateResolution.Day), row, recent));
@@ -260,7 +260,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchLowersHeaderDateOn() throws Exception {
-        builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+        builder.header(DATE_FIELD.toLowerCase(Locale.US), 
RFC822_SUN_SEP_9TH_2001);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(9, 9,
                 2000), DateResolution.Day),row, recent));
@@ -278,7 +278,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testMatchHeaderDateBefore() throws Exception {
-        builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+        builder.header(DATE_FIELD.toLowerCase(Locale.US), 
RFC822_SUN_SEP_9TH_2001);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
                 getDate(9, 9, 2000), DateResolution.Day),row, recent));
@@ -296,7 +296,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchCapsHeaderDateBefore() throws Exception {
-        builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+        builder.header(DATE_FIELD.toLowerCase(Locale.US), 
RFC822_SUN_SEP_9TH_2001);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
                 getDate(9, 9, 2000), DateResolution.Day),row, recent));
@@ -314,7 +314,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchLowersHeaderDateBefore() throws Exception {
-        builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
+        builder.header(DATE_FIELD.toLowerCase(Locale.US), 
RFC822_SUN_SEP_9TH_2001);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
                 getDate(9, 9, 2000), DateResolution.Day),row, recent));
@@ -380,7 +380,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchLowerHeaderContains() throws Exception {
-        builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
+        builder.header(SUBJECT_FIELD.toLowerCase(Locale.US), TEXT);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerContains(DATE_FIELD,
                 CUSTARD), row, recent));
@@ -422,7 +422,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchLowersHeaderExists() throws Exception {
-        builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
+        builder.header(SUBJECT_FIELD.toLowerCase(Locale.US), TEXT);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerExists(DATE_FIELD), row,
                 recent));
@@ -432,7 +432,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchUppersHeaderExists() throws Exception {
-        builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
+        builder.header(SUBJECT_FIELD.toLowerCase(Locale.US), TEXT);
         MailboxMessage row = builder.build();
         assertFalse(new 
MessageSearches().isMatch(SearchQuery.headerExists(DATE_FIELD), row,
                 recent));

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalyzer.java
----------------------------------------------------------------------
diff --git 
a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalyzer.java 
b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalyzer.java
index d656963..f83c641 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalyzer.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalyzer.java
@@ -25,6 +25,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedSet;
@@ -449,7 +450,7 @@ public class BayesianAnalyzer {
 
         // prepare a version of the token containing all lower case (for
         // performance reasons)
-        tokenLower = token.toLowerCase();
+        tokenLower = token.toLowerCase(Locale.US);
 
         int end = token.length();
         do {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
index bdedc60..34f9cf0 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
@@ -27,6 +27,7 @@ import javax.mail.MessagingException;
 import javax.mail.Multipart;
 import javax.mail.internet.MimeMessage;
 import java.io.IOException;
+import java.util.Locale;
 import java.util.StringTokenizer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -294,7 +295,7 @@ public class ClassifyBounce extends GenericMailet {
         }
 
         private boolean assessMessageOutOfOffice() {
-            //if ( subject.toLowerCase().startsWith("re:") ) {
+            //if ( subject.toLowerCase(Locale.US).startsWith("re:") ) {
             boolean out = findInBody("out[\\s]+of[\\s]+the[\\s]+office");
             if (!out) {
                 out = findInBody("out[\\s]+of[\\s]+my[\\s]+office");
@@ -351,7 +352,7 @@ public class ClassifyBounce extends GenericMailet {
                 failed = findInSubject("User[\\s]+unknown");
             }
             if (!failed) {  //no idea...
-                String s = subject.toLowerCase();
+                String s = subject.toLowerCase(Locale.US);
                 failed = (s.indexOf("user") > 0 && (s.indexOf("unknown") > 
s.indexOf("user")));
             }
             return failed;

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIsLocal.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIsLocal.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIsLocal.java
index 6200383..0c9b5d5 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIsLocal.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIsLocal.java
@@ -21,6 +21,7 @@
 package org.apache.james.transport.matchers;
 
 import java.util.Collection;
+import java.util.Locale;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
@@ -47,7 +48,7 @@ public class SenderHostIsLocal extends GenericMatcher {
 
     private boolean isLocalServer(Mail mail) {
         return this.getMailetContext().isLocalServer(
-                mail.getSender().getDomain().toLowerCase());
+                mail.getSender().getDomain().toLowerCase(Locale.US));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/util/OsDetector.java
----------------------------------------------------------------------
diff --git 
a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/util/OsDetector.java
 
b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/util/OsDetector.java
index baf8c7b..005e2f4 100644
--- 
a/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/util/OsDetector.java
+++ 
b/mpt/impl/imap-mailbox/maildir/src/test/java/org/apache/james/mpt/imapmailbox/maildir/util/OsDetector.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mpt.imapmailbox.maildir.util;
 
+import java.util.Locale;
+
 public class OsDetector {
 
     /**
@@ -27,7 +29,7 @@ public class OsDetector {
      * @return windows
      */
     public static boolean isWindows() {
-        String os = System.getProperty("os.name").toLowerCase();
+        String os = System.getProperty("os.name").toLowerCase(Locale.US);
         return (os.contains("win"));
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java
----------------------------------------------------------------------
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java
index f371ecd..cadf9c5 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/AllButStartTlsDelimiterChannelHandler.java
@@ -19,6 +19,7 @@
 package org.apache.james.protocols.smtp;
 
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.james.protocols.netty.HandlerConstants;
 import org.jboss.netty.buffer.ChannelBuffer;
@@ -48,7 +49,7 @@ public class AllButStartTlsDelimiterChannelHandler extends 
DelimiterBasedFrameDe
         SMTPSession session = (SMTPSession) 
pipeline.getContext(HandlerConstants.CORE_HANDLER).getAttachment();
 
         if (session == null || session.needsCommandInjectionDetection()) {
-            String trimedLowerCasedInput = 
readAll(buffer).trim().toLowerCase();
+            String trimedLowerCasedInput = 
readAll(buffer).trim().toLowerCase(Locale.US);
             if (hasCommandInjection(trimedLowerCasedInput)) {
                 throw new CommandInjectionDetectedException();
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
----------------------------------------------------------------------
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
index a5d68fa..f2c52ae 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
@@ -21,6 +21,7 @@ package org.apache.james.protocols.smtp.core;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import javax.inject.Inject;
 
@@ -59,7 +60,7 @@ public abstract class AbstractHookableCmdHandler<Hook extends 
org.apache.james.p
      * #onCommand(org.apache.james.protocols.api.ProtocolSession, Request)
      */
     public Response onCommand(SMTPSession session, Request request) {
-        TimeMetric timeMetric = metricFactory.timer("SMTP-" + 
request.getCommand().toLowerCase());
+        TimeMetric timeMetric = metricFactory.timer("SMTP-" + 
request.getCommand().toLowerCase(Locale.US));
         String command = request.getCommand();
         String parameters = request.getArgument();
         Response response = doFilterChecks(session, command, parameters);

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
----------------------------------------------------------------------
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
index 490a47d..502da8a 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
@@ -23,6 +23,7 @@ package org.apache.james.protocols.smtp.core.fastfail;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 import org.apache.commons.configuration.Configuration;
@@ -73,7 +74,7 @@ public class SpamTrapHandler implements RcptHook {
             return HookResult.deny();
         } else {
          
-            if (spamTrapRecips.contains(rcpt.toString().toLowerCase())){
+            if 
(spamTrapRecips.contains(rcpt.toString().toLowerCase(Locale.US))){
         
                 addIp(address, session);
             

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
----------------------------------------------------------------------
diff --git 
a/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
 
b/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
index c66c3ae..fe2ebca 100644
--- 
a/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
+++ 
b/server/container/util/src/main/java/org/apache/james/util/bayesian/BayesianAnalyzer.java
@@ -26,6 +26,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedSet;
@@ -636,7 +637,7 @@ public class BayesianAnalyzer {
 
         // prepare a version of the token containing all lower case (for
         // performance reasons)
-        tokenLower = token.toLowerCase();
+        tokenLower = token.toLowerCase(Locale.US);
 
         int end = token.length();
         do {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
 
b/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
index 1e8f25a..6342e01 100644
--- 
a/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
+++ 
b/server/data/data-hbase/src/main/java/org/apache/james/domainlist/hbase/HBaseDomainList.java
@@ -21,6 +21,7 @@ package org.apache.james.domainlist.hbase;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
@@ -55,7 +56,7 @@ public class HBaseDomainList extends AbstractDomainList {
         HTableInterface table = null;
         try {
             table = TablePool.getInstance().getDomainlistTable();
-            Get get = new Get(Bytes.toBytes(domain.toLowerCase()));
+            Get get = new Get(Bytes.toBytes(domain.toLowerCase(Locale.US)));
             Result result = table.get(get);
             if (!result.isEmpty()) {
                 return true;
@@ -80,7 +81,7 @@ public class HBaseDomainList extends AbstractDomainList {
      */
     @Override
     public void addDomain(String domain) throws DomainListException {
-        String lowerCasedDomain = domain.toLowerCase();
+        String lowerCasedDomain = domain.toLowerCase(Locale.US);
         if (containsDomain(lowerCasedDomain)) {
             throw new DomainListException(lowerCasedDomain + " already 
exists.");
         }
@@ -110,7 +111,7 @@ public class HBaseDomainList extends AbstractDomainList {
         HTableInterface table = null;
         try {
             table = TablePool.getInstance().getDomainlistTable();
-            Delete delete = new Delete(Bytes.toBytes(domain.toLowerCase()));
+            Delete delete = new 
Delete(Bytes.toBytes(domain.toLowerCase(Locale.US)));
             table.delete(delete);
             table.flushCommits();
         } catch (IOException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
 
b/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
index 5b902ea..b93b0e8 100644
--- 
a/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
+++ 
b/server/data/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -127,7 +128,7 @@ public class HBaseUsersRepository extends 
AbstractUsersRepository {
      */
     @Override
     public boolean contains(String name) throws UsersRepositoryException {
-        KeyValue keyValue = getKeyValue(name.toLowerCase());
+        KeyValue keyValue = getKeyValue(name.toLowerCase(Locale.US));
         return (keyValue != null);
     }
 
@@ -264,7 +265,7 @@ public class HBaseUsersRepository extends 
AbstractUsersRepository {
     private void putUser(DefaultUser user, boolean isAdd) throws 
UsersRepositoryException {
         String username = user.getUserName();
         if (isAdd) {
-            username = user.getUserName().toLowerCase();
+            username = user.getUserName().toLowerCase(Locale.US);
             if (contains(username)) {
                 throw new UsersRepositoryException(username + " already 
exists.");
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
 
b/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
index 22f61b7..665c02b 100644
--- 
a/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
+++ 
b/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
@@ -22,6 +22,7 @@ package org.apache.james.user.jcr;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.Locale;
 
 import javax.inject.Inject;
 import javax.jcr.Node;
@@ -220,7 +221,7 @@ public class JCRUsersRepository extends 
AbstractUsersRepository {
             final Session session = login();
             try {
                 final Node rootNode = session.getRootNode();
-                final String path = USERS_PATH + "/" + 
toSafeName(name.toLowerCase());
+                final String path = USERS_PATH + "/" + 
toSafeName(name.toLowerCase(Locale.US));
                 rootNode.getNode(path);
                 return true;
             } finally {
@@ -362,7 +363,7 @@ public class JCRUsersRepository extends 
AbstractUsersRepository {
 
     @Override
     protected void doAddUser(String username, String password) throws 
UsersRepositoryException {
-        String lowerCasedUsername = username.toLowerCase();
+        String lowerCasedUsername = username.toLowerCase(Locale.US);
         if (contains(lowerCasedUsername)) {
             throw new UsersRepositoryException(lowerCasedUsername + " already 
exists.");
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
 
b/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
index 489ae4a..14f57fe 100644
--- 
a/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
+++ 
b/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
@@ -20,6 +20,7 @@ package org.apache.james.domainlist.jpa;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
@@ -76,7 +77,7 @@ public class JPADomainList extends AbstractDomainList {
             transaction.commit();
         } catch (PersistenceException e) {
             getLogger().error("Failed to list domains", e);
-            rollback(transaction);
+            rollback(transaction);
             throw new DomainListException("Unable to retrieve domains", e);
         } finally {
             entityManager.close();
@@ -86,17 +87,17 @@ public class JPADomainList extends AbstractDomainList {
 
     @Override
     public boolean containsDomain(String domain) throws DomainListException {
-        String lowerCasedDomain = domain.toLowerCase();
+        String lowerCasedDomain = domain.toLowerCase(Locale.US);
         EntityManager entityManager = 
entityManagerFactory.createEntityManager();
         final EntityTransaction transaction = entityManager.getTransaction();
         try {
             transaction.begin();
-            boolean result = containsDomainInternal(lowerCasedDomain, 
entityManager);
+            boolean result = containsDomainInternal(lowerCasedDomain, 
entityManager);
             transaction.commit();
-            return result;
+            return result;
         } catch (PersistenceException e) {
             getLogger().error("Failed to find domain", e);
-            rollback(transaction);
+            rollback(transaction);
             throw new DomainListException("Unable to retrieve domains", e);
         } finally {
             entityManager.close();
@@ -105,21 +106,21 @@ public class JPADomainList extends AbstractDomainList {
 
     @Override
     public void addDomain(String domain) throws DomainListException {
-        String lowerCasedDomain = domain.toLowerCase();
+        String lowerCasedDomain = domain.toLowerCase(Locale.US);
         EntityManager entityManager = 
entityManagerFactory.createEntityManager();
         final EntityTransaction transaction = entityManager.getTransaction();
         try {
             transaction.begin();
-            if (containsDomainInternal(lowerCasedDomain, entityManager)) {
-                transaction.commit();
-                throw new DomainListException(lowerCasedDomain + " already 
exists.");
-            }
+            if (containsDomainInternal(lowerCasedDomain, entityManager)) {
+                transaction.commit();
+                throw new DomainListException(lowerCasedDomain + " already 
exists.");
+            }
             JPADomain jpaDomain = new JPADomain(lowerCasedDomain);
             entityManager.persist(jpaDomain);
             transaction.commit();
         } catch (PersistenceException e) {
             getLogger().error("Failed to save domain", e);
-            rollback(transaction);
+            rollback(transaction);
             throw new DomainListException("Unable to add domain " + domain, e);
         } finally {
             entityManager.close();
@@ -128,43 +129,43 @@ public class JPADomainList extends AbstractDomainList {
 
     @Override
     public void removeDomain(String domain) throws DomainListException {
-        String lowerCasedDomain = domain.toLowerCase();
+        String lowerCasedDomain = domain.toLowerCase(Locale.US);
         EntityManager entityManager = 
entityManagerFactory.createEntityManager();
         final EntityTransaction transaction = entityManager.getTransaction();
         try {
             transaction.begin();
-            if (!containsDomainInternal(lowerCasedDomain, entityManager)) {
-                transaction.commit();
-                throw new DomainListException(domain + " was not found.");
-            }
-            
entityManager.createNamedQuery("deleteDomainByName").setParameter("name", 
lowerCasedDomain).executeUpdate();
+            if (!containsDomainInternal(lowerCasedDomain, entityManager)) {
+                transaction.commit();
+                throw new DomainListException(domain + " was not found.");
+            }
+            
entityManager.createNamedQuery("deleteDomainByName").setParameter("name", 
lowerCasedDomain).executeUpdate();
             transaction.commit();
         } catch (PersistenceException e) {
             getLogger().error("Failed to remove domain", e);
-            rollback(transaction);
+            rollback(transaction);
             throw new DomainListException("Unable to remove domain " + domain, 
e);
         } finally {
             entityManager.close();
         }
     }
 
-    private void rollback(EntityTransaction transaction) {
-        if (transaction.isActive()) {
-            transaction.rollback();
-        }
-    }
-
-    private boolean containsDomainInternal(String domain, EntityManager 
entityManager) {
-        try {
-            return entityManager.createNamedQuery("findDomainByName")
-                .setParameter("name", domain)
-                .getSingleResult() != null;
-        } catch (NoResultException e) {
-            getLogger().debug("No domain found", e);
-            return false;
-        }
-    }
-
+    private void rollback(EntityTransaction transaction) {
+        if (transaction.isActive()) {
+            transaction.rollback();
+        }
+    }
+
+    private boolean containsDomainInternal(String domain, EntityManager 
entityManager) {
+        try {
+            return entityManager.createNamedQuery("findDomainByName")
+                .setParameter("name", domain)
+                .getSingleResult() != null;
+        } catch (NoResultException e) {
+            getLogger().debug("No domain found", e);
+            return false;
+        }
+    }
+
     /**
      * Return a new {@link EntityManager} instance
      *

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
 
b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
index 11d674b..be49842 100644
--- 
a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
+++ 
b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
@@ -21,6 +21,7 @@ package org.apache.james.user.jpa;
 
 import java.util.Collections;
 import java.util.Iterator;
+import java.util.Locale;
 
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
@@ -178,7 +179,9 @@ public class JPAUsersRepository extends 
AbstractUsersRepository {
         EntityManager entityManager = 
entityManagerFactory.createEntityManager();
 
         try {
-            return (Long) 
entityManager.createNamedQuery("containsUser").setParameter("name", 
name.toLowerCase()).getSingleResult() > 0;
+            return (Long) entityManager.createNamedQuery("containsUser")
+                .setParameter("name", name.toLowerCase(Locale.US))
+                .getSingleResult() > 0;
         } catch (PersistenceException e) {
             getLogger().debug("Failed to find user", e);
             throw new UsersRepositoryException("Failed to find user" + name, 
e);
@@ -271,7 +274,7 @@ public class JPAUsersRepository extends 
AbstractUsersRepository {
      * 
org.apache.james.user.lib.AbstractUsersRepository#doAddUser(java.lang.String, 
java.lang.String)
      */
     protected void doAddUser(String username, String password) throws 
UsersRepositoryException {
-        String lowerCasedUsername = username.toLowerCase();
+        String lowerCasedUsername = username.toLowerCase(Locale.US);
         if (contains(lowerCasedUsername)) {
             throw new UsersRepositoryException(lowerCasedUsername + " already 
exists.");
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
index c8c993a..88d5bd8 100644
--- 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
+++ 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.rrt.lib;
 
+import java.util.Locale;
 import java.util.Map;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
@@ -279,7 +280,7 @@ public abstract class AbstractRecipientRewriteTable 
implements RecipientRewriteT
      */
     public void addMapping(String user, String domain, String mapping) throws 
RecipientRewriteTableException {
 
-        String map = mapping.toLowerCase();
+        String map = mapping.toLowerCase(Locale.US);
 
         if (map.startsWith(RecipientRewriteTable.ERROR_PREFIX)) {
             addErrorMapping(user, domain, 
map.substring(RecipientRewriteTable.ERROR_PREFIX.length()));
@@ -301,7 +302,7 @@ public abstract class AbstractRecipientRewriteTable 
implements RecipientRewriteT
      */
     public void removeMapping(String user, String domain, String mapping) 
throws RecipientRewriteTableException {
 
-        String map = mapping.toLowerCase();
+        String map = mapping.toLowerCase(Locale.US);
 
         if (map.startsWith(RecipientRewriteTable.ERROR_PREFIX)) {
             removeErrorMapping(user, domain, 
map.substring(RecipientRewriteTable.ERROR_PREFIX.length()));

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
index f7de297..8506664 100644
--- 
a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
+++ 
b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
@@ -19,6 +19,7 @@
 package org.apache.james.rrt.lib;
 
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 import java.util.StringTokenizer;
 import java.util.regex.Matcher;
@@ -200,8 +201,8 @@ public class RecipientRewriteTableUtil {
         while (tokenizer.hasMoreTokens()) {
             String mappingItem = tokenizer.nextToken();
             int index = mappingItem.indexOf('=');
-            String virtual = mappingItem.substring(0, 
index).trim().toLowerCase();
-            String real = mappingItem.substring(index + 
1).trim().toLowerCase();
+            String virtual = mappingItem.substring(0, 
index).trim().toLowerCase(Locale.US);
+            String real = mappingItem.substring(index + 
1).trim().toLowerCase(Locale.US);
             mappings.put(virtual, real);
         }
         return mappings;

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-memory/src/main/java/org/apache/james/domainlist/memory/MemoryDomainList.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-memory/src/main/java/org/apache/james/domainlist/memory/MemoryDomainList.java
 
b/server/data/data-memory/src/main/java/org/apache/james/domainlist/memory/MemoryDomainList.java
index f6da3f7..d890c33 100644
--- 
a/server/data/data-memory/src/main/java/org/apache/james/domainlist/memory/MemoryDomainList.java
+++ 
b/server/data/data-memory/src/main/java/org/apache/james/domainlist/memory/MemoryDomainList.java
@@ -21,6 +21,7 @@ package org.apache.james.domainlist.memory;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.domainlist.lib.AbstractDomainList;
@@ -42,21 +43,21 @@ public class MemoryDomainList extends AbstractDomainList {
 
     @Override
     public boolean containsDomain(String domain) throws DomainListException {
-        return domains.contains(domain.toLowerCase());
+        return domains.contains(domain.toLowerCase(Locale.US));
     }
 
     @Override
     public void addDomain(String domain) throws DomainListException {
         if (containsDomain(domain)) {
-            throw new DomainListException(domain.toLowerCase() + " already 
exists.");
+            throw new DomainListException(domain.toLowerCase(Locale.US) + " 
already exists.");
         }
-        domains.add(domain.toLowerCase());
+        domains.add(domain.toLowerCase(Locale.US));
     }
 
     @Override
     public void removeDomain(String domain) throws DomainListException {
-        if (!domains.remove(domain.toLowerCase())) {
-            throw new DomainListException(domain.toLowerCase() + " was not 
found");
+        if (!domains.remove(domain.toLowerCase(Locale.US))) {
+            throw new DomainListException(domain.toLowerCase(Locale.US) + " 
was not found");
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
 
b/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
index 003d669..38ebfd1 100644
--- 
a/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
+++ 
b/server/data/data-memory/src/main/java/org/apache/james/user/memory/MemoryUsersRepository.java
@@ -30,6 +30,7 @@ import org.apache.james.user.lib.model.DefaultUser;
 
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.Locale;
 import java.util.Map;
 
 public class MemoryUsersRepository extends AbstractUsersRepository {
@@ -71,7 +72,7 @@ public class MemoryUsersRepository extends 
AbstractUsersRepository {
     protected void doAddUser(String username, String password) throws 
UsersRepositoryException {
         DefaultUser user = new DefaultUser(username, algo);
         user.setPassword(password);
-        userByName.put(username.toLowerCase(), user);
+        userByName.put(username.toLowerCase(Locale.US), user);
     }
 
     @Override
@@ -85,7 +86,7 @@ public class MemoryUsersRepository extends 
AbstractUsersRepository {
         if (existingUser == null) {
             throw new UsersRepositoryException("Please provide an existing 
user to update");
         }
-        userByName.put(user.getUserName().toLowerCase(), user);
+        userByName.put(user.getUserName().toLowerCase(Locale.US), user);
     }
 
     @Override
@@ -97,7 +98,7 @@ public class MemoryUsersRepository extends 
AbstractUsersRepository {
 
     @Override
     public boolean contains(String name) throws UsersRepositoryException {
-        return userByName.containsKey(name.toLowerCase());
+        return userByName.containsKey(name.toLowerCase(Locale.US));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 983317a..fca950a 100644
--- 
a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ 
b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -241,13 +241,13 @@ public class JamesMailetContext implements MailetContext, 
LogEnabled, Configurab
         try {
             if (!name.contains("@")) {
                 try {
-                    return isLocalEmail(new MailAddress(name.toLowerCase(), 
domains.getDefaultDomain()));
+                    return isLocalEmail(new 
MailAddress(name.toLowerCase(Locale.US), domains.getDefaultDomain()));
                 } catch (DomainListException e) {
                     log("Unable to access DomainList", e);
                     return false;
                 }
             } else {
-                return isLocalEmail(new MailAddress(name.toLowerCase()));
+                return isLocalEmail(new 
MailAddress(name.toLowerCase(Locale.US)));
             }
         } catch (ParseException e) {
             log("Error checking isLocalUser for user " + name);
@@ -258,7 +258,7 @@ public class JamesMailetContext implements MailetContext, 
LogEnabled, Configurab
     @Override
     public boolean isLocalEmail(MailAddress mailAddress) {
         if (mailAddress != null) {
-            if (!isLocalServer(mailAddress.getDomain().toLowerCase())) {
+            if 
(!isLocalServer(mailAddress.getDomain().toLowerCase(Locale.US))) {
                 return false;
             }
             try {

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/XMLRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/XMLRecipientRewriteTable.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/XMLRecipientRewriteTable.java
index c3a13ba..87bc4ad 100755
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/XMLRecipientRewriteTable.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/XMLRecipientRewriteTable.java
@@ -21,6 +21,7 @@ package org.apache.james.transport.mailets;
 
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 import javax.mail.MessagingException;
@@ -100,8 +101,8 @@ public class XMLRecipientRewriteTable extends 
AbstractRecipientRewriteTable {
         Collection<MailAddress> recipients = recipientsMap.keySet();
 
         for (MailAddress source : recipients) {
-            String user = source.getLocalPart().toLowerCase();
-            String domain = source.getDomain().toLowerCase();
+            String user = source.getLocalPart().toLowerCase(Locale.US);
+            String domain = source.getDomain().toLowerCase(Locale.US);
 
             String targetString = 
RecipientRewriteTableUtil.getTargetString(user, domain, mappings);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
index b0ca0ae..39e6b3b 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SievePoster.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.transport.mailets.jsieve.delivery;
 
+import java.util.Locale;
+
 import javax.mail.MessagingException;
 
 import org.apache.james.transport.mailets.delivery.MailStore;
@@ -83,7 +85,7 @@ public class SievePoster implements Poster {
     private String retrieveUser(String url, int startOfUser, int endOfUser, 
String host) throws MessagingException {
         // lowerCase the user - see
         // https://issues.apache.org/jira/browse/JAMES-1369
-        String user = url.substring(startOfUser, endOfUser).toLowerCase();
+        String user = url.substring(startOfUser, 
endOfUser).toLowerCase(Locale.US);
         // Check if we should use the full email address as username
         try {
             return usersRepository.getUser(new MailAddress(user, host));

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
index 5f3ccc2..9e12470 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Locale;
 import java.util.Scanner;
 
 import javax.inject.Inject;
@@ -125,7 +126,7 @@ public class ManageSieveMailet extends GenericMailet 
implements MessageToCoreToM
             getMailetContext().log(MailetContext.LogLevel.ERROR, "Sender is 
null");
             return;
         }
-        if 
(!getMailetContext().isLocalServer(mail.getSender().getDomain().toLowerCase())) 
{
+        if 
(!getMailetContext().isLocalServer(mail.getSender().getDomain().toLowerCase(Locale.US)))
 {
             getMailetContext().log(LogLevel.ERROR, "Sender not local");
             return;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java
index b6a40e7..6eddaa0 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/transcode/MessageToCoreToMessage.java
@@ -32,6 +32,7 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Locale;
 import java.util.Scanner;
 
 public class MessageToCoreToMessage {
@@ -53,7 +54,7 @@ public class MessageToCoreToMessage {
                 MimeBodyPart part = (MimeBodyPart) parts.getBodyPart(i);
                 found = part.isMimeType("application/sieve");
                 if (!found) {
-                    String fileName = null == part.getFileName() ? null : 
part.getFileName().toLowerCase();
+                    String fileName = null == part.getFileName() ? null : 
part.getFileName().toLowerCase(Locale.US);
                     found = fileName != null &&
                         (fileName.endsWith(".siv") || 
fileName.endsWith(".sieve"));
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
 
b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
index 67a7876..a71e29f 100644
--- 
a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
+++ 
b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
@@ -22,6 +22,7 @@ package org.apache.james.smtpserver.fastfail;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -240,7 +241,7 @@ public class URIScanner {
 
             String host = hostFromUriStr(found);
             if (null != host) {
-                host = host.toLowerCase();
+                host = host.toLowerCase(Locale.US);
                 if (!set.contains(host)) {
                     set.add(host);
                 }
@@ -258,7 +259,7 @@ public class URIScanner {
             String host = hostFromUriStr(found);
             if (null != host) {
 
-                host = host.toLowerCase();
+                host = host.toLowerCase(Locale.US);
                 if (!set.contains(host)) {
                     set.add(host);
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/c03eab2c/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
 
b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
index 1de34d1..32316c0 100644
--- 
a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
+++ 
b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.smtpserver.netty;
 
+import java.util.Locale;
+
 import javax.inject.Inject;
 
 import org.apache.commons.configuration.ConfigurationException;
@@ -125,7 +127,7 @@ public class SMTPServer extends AbstractProtocolAsyncServer 
implements SMTPServe
     public void doConfigure(HierarchicalConfiguration configuration) throws 
ConfigurationException {
         super.doConfigure(configuration);
         if (isEnabled()) {
-            String authRequiredString = 
configuration.getString("authRequired", "false").trim().toLowerCase();
+            String authRequiredString = 
configuration.getString("authRequired", "false").trim().toLowerCase(Locale.US);
             if (authRequiredString.equals("true"))
                 authRequired = AUTH_REQUIRED;
             else if (authRequiredString.equals("announce"))


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to