487511 - Jetty HTTP won't work on turkish systems.

Fixed usages of toLowerCase() and toUpperCase() to use Locale.ENGLISH.
diff --git a/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientURITest.java b/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientURITest.java
index a6fb0d5..fee0a67 100644
--- a/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientURITest.java
+++ b/jetty-client/src/test/java/org/eclipse/jetty/client/HttpClientURITest.java
@@ -20,6 +20,7 @@
 
 import java.io.IOException;
 import java.net.URLEncoder;
+import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
 import javax.servlet.ServletException;
@@ -445,7 +446,7 @@
         });
 
         ContentResponse response = client.newRequest("localhost", connector.getLocalPort())
-                .scheme(scheme.toUpperCase())
+                .scheme(scheme.toUpperCase(Locale.ENGLISH))
                 .timeout(5, TimeUnit.SECONDS)
                 .send();
 
diff --git a/jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java b/jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java
index 9491332..2d1b839 100644
--- a/jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java
+++ b/jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java
@@ -18,6 +18,15 @@
 
 package org.eclipse.jetty.http;
 
+import java.nio.ByteBuffer;
+import java.util.Enumeration;
+import java.util.Locale;
+
+import org.eclipse.jetty.util.BufferUtil;
+import org.hamcrest.Matchers;
+import org.junit.Assert;
+import org.junit.Test;
+
 import static org.hamcrest.Matchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -25,13 +34,6 @@
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-import java.nio.ByteBuffer;
-import java.util.Enumeration;
-import org.eclipse.jetty.util.BufferUtil;
-import org.hamcrest.Matchers;
-import org.junit.Assert;
-import org.junit.Test;
-
 /**
  *
  */
@@ -134,11 +136,11 @@
         BufferUtil.flipToFill(buffer);
         HttpGenerator.putTo(header,buffer);
         BufferUtil.flipToFlush(buffer,0);
-        String out = BufferUtil.toString(buffer).toLowerCase();
+        String out = BufferUtil.toString(buffer).toLowerCase(Locale.ENGLISH);
 
-        Assert.assertThat(out,Matchers.containsString((HttpHeader.CONNECTION+": "+HttpHeaderValue.KEEP_ALIVE).toLowerCase()));
-        Assert.assertThat(out,Matchers.containsString((HttpHeader.TRANSFER_ENCODING+": "+HttpHeaderValue.CHUNKED).toLowerCase()));
-        Assert.assertThat(out,Matchers.containsString((HttpHeader.CONTENT_ENCODING+": "+HttpHeaderValue.GZIP).toLowerCase()));
+        Assert.assertThat(out,Matchers.containsString((HttpHeader.CONNECTION+": "+HttpHeaderValue.KEEP_ALIVE).toLowerCase(Locale.ENGLISH)));
+        Assert.assertThat(out,Matchers.containsString((HttpHeader.TRANSFER_ENCODING+": "+HttpHeaderValue.CHUNKED).toLowerCase(Locale.ENGLISH)));
+        Assert.assertThat(out,Matchers.containsString((HttpHeader.CONTENT_ENCODING+": "+HttpHeaderValue.GZIP).toLowerCase(Locale.ENGLISH)));
     }
 
     @Test
@@ -290,7 +292,7 @@
         assertEquals(true, e.hasMoreElements());
         assertEquals(e.nextElement(), "value0D");
         assertEquals(false, e.hasMoreElements());
-        
+
         e = fields.getValues("name1",",");
         assertEquals(true, e.hasMoreElements());
         assertEquals(e.nextElement(), "value1A");
@@ -301,7 +303,7 @@
         assertEquals(true, e.hasMoreElements());
         assertEquals(e.nextElement(), "value1D");
         assertEquals(false, e.hasMoreElements());
-        
+
     }
 
     @Test
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java
index b5df0f0..d69032e 100644
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java
+++ b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/PreconfigureQuickStartWar.java
@@ -18,6 +18,8 @@
 
 package org.eclipse.jetty.quickstart;
 
+import java.util.Locale;
+
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.util.log.Log;
 import org.eclipse.jetty.util.log.Logger;
@@ -29,7 +31,7 @@
 {
     private static final Logger LOG = Log.getLogger(PreconfigureQuickStartWar.class);
     static final boolean ORIGIN=LOG.isDebugEnabled();
-    
+
 
     public static void main(String... args) throws Exception
     {
@@ -72,7 +74,7 @@
                 break;
         }
 
-        
+
         preconfigure(war,dir,xml);
     }
 
@@ -82,7 +84,7 @@
      * @param xml A context XML to apply (or null if none)
      * @throws Exception
      */
-    public static void preconfigure(Resource war, Resource dir, Resource xml) throws Exception 
+    public static void preconfigure(Resource war, Resource dir, Resource xml) throws Exception
     {
         // Do we need to unpack a war?
         if (war != null)
@@ -94,14 +96,14 @@
                 dir.getFile().mkdirs();
             JarResource.newJarResource(war).copyTo(dir.getFile());
         }
-        
+
         final Server server = new Server();
 
         QuickStartWebApp webapp = new QuickStartWebApp();
 
         if (xml != null)
         {
-            if (xml.isDirectory() || !xml.toString().toLowerCase().endsWith(".xml"))
+            if (xml.isDirectory() || !xml.toString().toLowerCase(Locale.ENGLISH).endsWith(".xml"))
                 error("Bad context.xml: "+xml);
             XmlConfiguration xmlConfiguration = new XmlConfiguration(xml.getURL());
             xmlConfiguration.configure(webapp);
@@ -112,9 +114,9 @@
         server.start();
         server.stop();
     }
-    
-    
-    
+
+
+
 
     private static void error(String message)
     {
diff --git a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java
index 91c1d09..b6f396a 100644
--- a/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java
+++ b/jetty-quickstart/src/main/java/org/eclipse/jetty/quickstart/QuickStartWebApp.java
@@ -19,6 +19,7 @@
 package org.eclipse.jetty.quickstart;
 
 import java.io.FileOutputStream;
+import java.util.Locale;
 
 import org.eclipse.jetty.util.log.Log;
 import org.eclipse.jetty.util.log.Logger;
@@ -33,35 +34,35 @@
 public class QuickStartWebApp extends WebAppContext
 {
     private static final Logger LOG = Log.getLogger(QuickStartWebApp.class);
-    
-    
-    
-    public static final String[] __configurationClasses = new String[] 
+
+
+
+    public static final String[] __configurationClasses = new String[]
             {
                 org.eclipse.jetty.quickstart.QuickStartConfiguration.class.getCanonicalName(),
                 org.eclipse.jetty.plus.webapp.EnvConfiguration.class.getCanonicalName(),
                 org.eclipse.jetty.plus.webapp.PlusConfiguration.class.getCanonicalName(),
                 org.eclipse.jetty.webapp.JettyWebXmlConfiguration.class.getCanonicalName()
             };
-    
-    
+
+
     private boolean _preconfigure=false;
     private boolean _autoPreconfigure=false;
     private boolean _startWebapp=false;
     private PreconfigureDescriptorProcessor _preconfigProcessor;
-    
+
 
     public static final String[] __preconfigurationClasses = new String[]
-    { 
-        org.eclipse.jetty.webapp.WebInfConfiguration.class.getCanonicalName(), 
+    {
+        org.eclipse.jetty.webapp.WebInfConfiguration.class.getCanonicalName(),
         org.eclipse.jetty.webapp.WebXmlConfiguration.class.getCanonicalName(),
-        org.eclipse.jetty.webapp.MetaInfConfiguration.class.getCanonicalName(), 
+        org.eclipse.jetty.webapp.MetaInfConfiguration.class.getCanonicalName(),
         org.eclipse.jetty.webapp.FragmentConfiguration.class.getCanonicalName(),
-        org.eclipse.jetty.plus.webapp.EnvConfiguration.class.getCanonicalName(), 
+        org.eclipse.jetty.plus.webapp.EnvConfiguration.class.getCanonicalName(),
         org.eclipse.jetty.plus.webapp.PlusConfiguration.class.getCanonicalName(),
         org.eclipse.jetty.annotations.AnnotationConfiguration.class.getCanonicalName(),
     };
-    
+
     public QuickStartWebApp()
     {
         super();
@@ -76,7 +77,7 @@
 
     /* ------------------------------------------------------------ */
     /** Preconfigure webapp
-     * @param preconfigure  If true, then starting the webapp will generate 
+     * @param preconfigure  If true, then starting the webapp will generate
      * the WEB-INF/quickstart-web.xml rather than start the webapp.
      */
     public void setPreconfigure(boolean preconfigure)
@@ -88,22 +89,22 @@
     {
         return _autoPreconfigure;
     }
-    
+
     public void setAutoPreconfigure(boolean autoPrecompile)
     {
         _autoPreconfigure = autoPrecompile;
     }
-    
+
     @Override
     protected void startWebapp() throws Exception
     {
         if (isPreconfigure())
             generateQuickstartWebXml(_preconfigProcessor.getXML());
-        
+
         if (_startWebapp)
             super.startWebapp();
     }
-    
+
     @Override
     protected void doStart() throws Exception
     {
@@ -117,14 +118,14 @@
 
         if (base.isDirectory())
             dir=base;
-        else if (base.toString().toLowerCase().endsWith(".war"))
+        else if (base.toString().toLowerCase(Locale.ENGLISH).endsWith(".war"))
         {
             war=base;
             String w=war.toString();
             dir=Resource.newResource(w.substring(0,w.length()-4));
 
             if (!dir.exists())
-            {                       
+            {
                 LOG.info("Quickstart Extract " + war + " to " + dir);
                 dir.getFile().mkdirs();
                 JarResource.newJarResource(war).copyTo(dir.getFile());
@@ -133,12 +134,12 @@
             setWar(null);
             setBaseResource(dir);
         }
-        else 
+        else
             throw new IllegalArgumentException();
 
 
         Resource qswebxml=dir.addPath("/WEB-INF/quickstart-web.xml");
-        
+
         if (isPreconfigure())
         {
             _preconfigProcessor = new PreconfigureDescriptorProcessor();
@@ -151,17 +152,17 @@
             _startWebapp=true;
         }
         else if (_autoPreconfigure)
-        {   
+        {
             LOG.info("Quickstart preconfigure: {}(war={},dir={})",this,war,dir);
 
-            _preconfigProcessor = new PreconfigureDescriptorProcessor();    
+            _preconfigProcessor = new PreconfigureDescriptorProcessor();
             getMetaData().addDescriptorProcessor(_preconfigProcessor);
             setPreconfigure(true);
             _startWebapp=true;
         }
         else
             _startWebapp=true;
-            
+
         super.doStart();
     }
 
@@ -178,5 +179,5 @@
         }
     }
 
-  
+
 }
diff --git a/jetty-runner/src/main/java/org/eclipse/jetty/runner/Runner.java b/jetty-runner/src/main/java/org/eclipse/jetty/runner/Runner.java
index ca041fa..8da40ec 100644
--- a/jetty-runner/src/main/java/org/eclipse/jetty/runner/Runner.java
+++ b/jetty-runner/src/main/java/org/eclipse/jetty/runner/Runner.java
@@ -18,12 +18,33 @@
 
 package org.eclipse.jetty.runner;
 
+import java.io.IOException;
+import java.io.PrintStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
 import org.eclipse.jetty.security.ConstraintMapping;
 import org.eclipse.jetty.security.ConstraintSecurityHandler;
 import org.eclipse.jetty.security.HashLoginService;
 import org.eclipse.jetty.security.authentication.BasicAuthenticator;
-import org.eclipse.jetty.server.*;
-import org.eclipse.jetty.server.handler.*;
+import org.eclipse.jetty.server.AbstractConnector;
+import org.eclipse.jetty.server.Connector;
+import org.eclipse.jetty.server.ConnectorStatistics;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.NCSARequestLog;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.ShutdownMonitor;
+import org.eclipse.jetty.server.handler.ContextHandler;
+import org.eclipse.jetty.server.handler.ContextHandlerCollection;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerCollection;
+import org.eclipse.jetty.server.handler.RequestLogHandler;
+import org.eclipse.jetty.server.handler.StatisticsHandler;
 import org.eclipse.jetty.server.session.SessionHandler;
 import org.eclipse.jetty.servlet.ServletContextHandler;
 import org.eclipse.jetty.servlet.ServletHolder;
@@ -36,15 +57,6 @@
 import org.eclipse.jetty.webapp.WebAppContext;
 import org.eclipse.jetty.xml.XmlConfiguration;
 
-import java.io.IOException;
-import java.io.PrintStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-
 
 /**
  * Runner
@@ -111,8 +123,9 @@
                         addJars(item);
                     else
                     {
-                        if (path.toLowerCase().endsWith(".jar") ||
-                            path.toLowerCase().endsWith(".zip"))
+                        String lowerCasePath = path.toLowerCase(Locale.ENGLISH);
+                        if (lowerCasePath.endsWith(".jar") ||
+                            lowerCasePath.endsWith(".zip"))
                         {
                             URL url = item.getURL();
                             _classpath.add(url);
@@ -247,7 +260,7 @@
 
         for (int i=0;i<args.length;i++)
         {
-            switch (args[i]) 
+            switch (args[i])
             {
                 case "--port":
                     port = Integer.parseInt(args[++i]);
@@ -309,9 +322,9 @@
                         }
 
                         //apply jetty config files if there are any
-                        if (_configFiles != null) 
+                        if (_configFiles != null)
                         {
-                            for (String cfg : _configFiles) 
+                            for (String cfg : _configFiles)
                             {
                                 try (Resource resource = Resource.newResource(cfg)) {
                                     XmlConfiguration xmlConfiguration = new XmlConfiguration(resource.getURL());
@@ -322,7 +335,7 @@
 
                         //check that everything got configured, and if not, make the handlers
                         HandlerCollection handlers = (HandlerCollection) _server.getChildHandlerByClass(HandlerCollection.class);
-                        if (handlers == null) 
+                        if (handlers == null)
                         {
                             handlers = new HandlerCollection();
                             _server.setHandler(handlers);
@@ -330,14 +343,14 @@
 
                         //check if contexts already configured
                         _contexts = (ContextHandlerCollection) handlers.getChildHandlerByClass(ContextHandlerCollection.class);
-                        if (_contexts == null) 
+                        if (_contexts == null)
                         {
                             _contexts = new ContextHandlerCollection();
                             prependHandler(_contexts, handlers);
                         }
 
 
-                        if (_enableStats) 
+                        if (_enableStats)
                         {
                             //if no stats handler already configured
                             if (handlers.getChildHandlerByClass(StatisticsHandler.class) == null) {
@@ -352,7 +365,7 @@
                                 ServletContextHandler statsContext = new ServletContextHandler(_contexts, "/stats");
                                 statsContext.addServlet(new ServletHolder(new StatisticsServlet()), "/");
                                 statsContext.setSessionHandler(new SessionHandler());
-                                if (_statsPropFile != null) 
+                                if (_statsPropFile != null)
                                 {
                                     HashLoginService loginService = new HashLoginService("StatsRealm", _statsPropFile);
                                     Constraint constraint = new Constraint();
@@ -374,14 +387,14 @@
                         }
 
                         //ensure a DefaultHandler is present
-                        if (handlers.getChildHandlerByClass(DefaultHandler.class) == null) 
+                        if (handlers.getChildHandlerByClass(DefaultHandler.class) == null)
                         {
                             handlers.addHandler(new DefaultHandler());
                         }
 
                         //ensure a log handler is present
                         _logHandler = (RequestLogHandler) handlers.getChildHandlerByClass(RequestLogHandler.class);
-                        if (_logHandler == null) 
+                        if (_logHandler == null)
                         {
                             _logHandler = new RequestLogHandler();
                             handlers.addHandler(_logHandler);
@@ -390,7 +403,7 @@
 
                         //check a connector is configured to listen on
                         Connector[] connectors = _server.getConnectors();
-                        if (connectors == null || connectors.length == 0) 
+                        if (connectors == null || connectors.length == 0)
                         {
                             ServerConnector connector = new ServerConnector(_server);
                             connector.setPort(port);
@@ -399,12 +412,12 @@
                             _server.addConnector(connector);
                             if (_enableStats)
                                 connector.addBean(new ConnectorStatistics());
-                        } 
-                        else 
+                        }
+                        else
                         {
-                            if (_enableStats) 
+                            if (_enableStats)
                             {
-                                for (Connector connector : connectors) 
+                                for (Connector connector : connectors)
                                 {
                                     ((AbstractConnector) connector).addBean(new ConnectorStatistics());
                                 }
@@ -415,7 +428,7 @@
                     }
 
                     // Create a context
-                    try (Resource ctx = Resource.newResource(args[i])) 
+                    try (Resource ctx = Resource.newResource(args[i]))
                     {
                         if (!ctx.exists())
                             usage("Context '" + ctx + "' does not exist");
@@ -424,7 +437,7 @@
                             contextPath = "/" + contextPath;
 
                         // Configure the context
-                        if (!ctx.isDirectory() && ctx.toString().toLowerCase().endsWith(".xml")) 
+                        if (!ctx.isDirectory() && ctx.toString().toLowerCase(Locale.ENGLISH).endsWith(".xml"))
                         {
                             // It is a context config file
                             XmlConfiguration xmlConfiguration = new XmlConfiguration(ctx.getURL());
@@ -435,7 +448,7 @@
                             _contexts.addHandler(handler);
                             handler.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", __containerIncludeJarPattern);
                         }
-                        else 
+                        else
                         {
                             // assume it is a WAR file
                             WebAppContext webapp = new WebAppContext(_contexts, ctx.toString(), contextPath);
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/JspPropertyGroupServlet.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/JspPropertyGroupServlet.java
index 6394a5b..aa14e2c 100644
--- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/JspPropertyGroupServlet.java
+++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/JspPropertyGroupServlet.java
@@ -19,6 +19,7 @@
 package org.eclipse.jetty.servlet;
 
 import java.io.IOException;
+import java.util.Locale;
 
 import javax.servlet.GenericServlet;
 import javax.servlet.ServletException;
@@ -35,37 +36,37 @@
 /* ------------------------------------------------------------ */
 /** Servlet handling JSP Property Group mappings
  * <p>
- * This servlet is mapped to by any URL pattern for a JSP property group. 
+ * This servlet is mapped to by any URL pattern for a JSP property group.
  * Resources handled by this servlet that are not directories will be passed
- * directly to the JSP servlet.    Resources that are directories will be 
+ * directly to the JSP servlet.    Resources that are directories will be
  * passed directly to the default servlet.
  */
 public class JspPropertyGroupServlet extends GenericServlet
 {
     private static final long serialVersionUID = 3681783214726776945L;
-    
+
     public final static String NAME = "__org.eclipse.jetty.servlet.JspPropertyGroupServlet__";
     private final ServletHandler _servletHandler;
     private final ContextHandler _contextHandler;
     private ServletHolder _dftServlet;
     private ServletHolder _jspServlet;
     private boolean _starJspMapped;
-    
+
     public JspPropertyGroupServlet(ContextHandler context, ServletHandler servletHandler)
     {
         _contextHandler=context;
-        _servletHandler=servletHandler;        
+        _servletHandler=servletHandler;
     }
-    
+
     @Override
     public void init() throws ServletException
-    {            
+    {
         String jsp_name = "jsp";
         ServletMapping servlet_mapping =_servletHandler.getServletMapping("*.jsp");
         if (servlet_mapping!=null)
         {
             _starJspMapped=true;
-           
+
             //now find the jsp servlet, ignoring the mapping that is for ourself
             ServletMapping[] mappings = _servletHandler.getServletMappings();
             for (ServletMapping m:mappings)
@@ -80,11 +81,11 @@
                     }
                 }
             }
-            
+
             jsp_name=servlet_mapping.getServletName();
         }
         _jspServlet=_servletHandler.getServlet(jsp_name);
-        
+
         String dft_name="default";
         ServletMapping default_mapping=_servletHandler.getServletMapping("/");
         if (default_mapping!=null)
@@ -94,7 +95,7 @@
 
     @Override
     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
-    {           
+    {
         HttpServletRequest request = null;
         if (req instanceof HttpServletRequest)
             request = (HttpServletRequest)req;
@@ -118,27 +119,27 @@
             servletPath = request.getServletPath();
             pathInfo = request.getPathInfo();
         }
-        
+
         String pathInContext=URIUtil.addPaths(servletPath,pathInfo);
-        
+
         if (pathInContext.endsWith("/"))
         {
             _dftServlet.getServlet().service(req,res);
         }
-        else if (_starJspMapped && pathInContext.toLowerCase().endsWith(".jsp"))
+        else if (_starJspMapped && pathInContext.toLowerCase(Locale.ENGLISH).endsWith(".jsp"))
         {
             _jspServlet.getServlet().service(req,res);
         }
         else
         {
-         
+
             Resource resource = _contextHandler.getResource(pathInContext);
             if (resource!=null && resource.isDirectory())
                 _dftServlet.getServlet().service(req,res);
             else
                 _jspServlet.getServlet().service(req,res);
         }
-        
+
     }
 
 }
diff --git a/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java b/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java
index d2243bf..1adcf42 100644
--- a/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java
+++ b/jetty-start/src/main/java/org/eclipse/jetty/start/Module.java
@@ -279,7 +279,7 @@
         {
             return true;
         }
-        
+
         System.err.printf("%nModule %s:%n",getName());
         System.err.printf(" + contains software not provided by the Eclipse Foundation!%n");
         System.err.printf(" + contains software not covered by the Eclipse Public License!%n");
@@ -309,7 +309,7 @@
                 System.err.printf("%nProceed (y/N)? ");
                 String line = input.readLine();
 
-                licenseAck = !(line == null || line.length() == 0 || !line.toLowerCase().startsWith("y"));
+                licenseAck = !(line == null || line.length() == 0 || !line.toLowerCase(Locale.ENGLISH).startsWith("y"));
             }
         }
 
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/security/Password.java b/jetty-util/src/main/java/org/eclipse/jetty/util/security/Password.java
index 3bd237b..0b5fe90 100644
--- a/jetty-util/src/main/java/org/eclipse/jetty/util/security/Password.java
+++ b/jetty-util/src/main/java/org/eclipse/jetty/util/security/Password.java
@@ -21,6 +21,7 @@
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
+import java.util.Locale;
 
 import org.eclipse.jetty.util.log.Log;
 import org.eclipse.jetty.util.log.Logger;
@@ -28,15 +29,15 @@
 /* ------------------------------------------------------------ */
 /**
  * Password utility class.
- * 
+ *
  * This utility class gets a password or pass phrase either by:
- * 
+ *
  * <PRE>
  *  + Password is set as a system property.
  *  + The password is prompted for and read from standard input
  *  + A program is run to get the password.
  * </pre>
- * 
+ *
  * Passwords that begin with OBF: are de obfuscated. Passwords can be obfuscated
  * by run org.eclipse.util.Password as a main class. Obfuscated password are
  * required if a system needs to recover the full password (eg. so that it may
@@ -50,8 +51,8 @@
  * a secure(ish) way to store passwords that only need to be checked rather than
  * recovered. Note that it is not strong security - specially if simple
  * passwords are used.
- * 
- * 
+ *
+ *
  */
 public class Password extends Credential
 {
@@ -66,7 +67,7 @@
     /* ------------------------------------------------------------ */
     /**
      * Constructor.
-     * 
+     *
      * @param password The String password.
      */
     public Password(String password)
@@ -112,10 +113,10 @@
     @Override
     public boolean equals(Object o)
     {
-        if (this == o) 
+        if (this == o)
             return true;
 
-        if (null == o) 
+        if (null == o)
             return false;
 
         if (o instanceof Password)
@@ -125,7 +126,7 @@
             return p._pw == _pw || (null != _pw && _pw.equals(p._pw));
         }
 
-        if (o instanceof String) 
+        if (o instanceof String)
             return o.equals(_pw);
 
         return false;
@@ -151,8 +152,8 @@
             byte b2 = b[b.length - (i + 1)];
             if (b1<0 || b2<0)
             {
-                int i0 = (0xff&b1)*256 + (0xff&b2); 
-                String x = Integer.toString(i0, 36).toLowerCase();
+                int i0 = (0xff&b1)*256 + (0xff&b2);
+                String x = Integer.toString(i0, 36).toLowerCase(Locale.ENGLISH);
                 buf.append("U0000",0,5-x.length());
                 buf.append(x);
             }
@@ -161,13 +162,13 @@
                 int i1 = 127 + b1 + b2;
                 int i2 = 127 + b1 - b2;
                 int i0 = i1 * 256 + i2;
-                String x = Integer.toString(i0, 36).toLowerCase();
+                String x = Integer.toString(i0, 36).toLowerCase(Locale.ENGLISH);
 
                 int j0 = Integer.parseInt(x, 36);
                 int j1 = (i0 / 256);
                 int j2 = (i0 % 256);
                 byte bx = (byte) ((j1 + j2 - 254) / 2);
-                
+
                 buf.append("000",0,4-x.length());
                 buf.append(x);
             }
@@ -216,7 +217,7 @@
      * <LI>Prompting for a password
      * <LI>Using promptDft if nothing was entered.
      * </UL>
-     * 
+     *
      * @param realm The realm name for the password, used as a SystemProperty
      *                name.
      * @param dft The default password.