diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java
index 05a4187..f95ecdd 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java
@@ -196,7 +196,7 @@
                         Object leftValue = getter.invoke(left.getValue());
                         Object rightValue = getter.invoke(right.getValue());
                         if (leftValue instanceof Comparable && rightValue instanceof Comparable) {
-                            if (getSortOrder().toLowerCase().equals("desc")) {
+                            if (getSortOrder().equalsIgnoreCase("desc")) {
                                 return ((Comparable) rightValue).compareTo(leftValue);
                             } else {
                                 return ((Comparable) leftValue).compareTo(rightValue);
diff --git a/activemq-broker/src/main/java/org/apache/activemq/util/BooleanEditor.java b/activemq-broker/src/main/java/org/apache/activemq/util/BooleanEditor.java
index 065affd..034e864 100644
--- a/activemq-broker/src/main/java/org/apache/activemq/util/BooleanEditor.java
+++ b/activemq-broker/src/main/java/org/apache/activemq/util/BooleanEditor.java
@@ -35,9 +35,9 @@
     }
 
     public void setAsText(String text) throws java.lang.IllegalArgumentException {
-        if (text.toLowerCase().equals("true")) {
+        if (text.equalsIgnoreCase("true")) {
             setValue(Boolean.TRUE);
-        } else if (text.toLowerCase().equals("false")) {
+        } else if (text.equalsIgnoreCase("false")) {
             setValue(Boolean.FALSE);
         } else {
             throw new java.lang.IllegalArgumentException(text);
diff --git a/activemq-http/src/main/java/org/apache/activemq/transport/util/HttpTransportUtils.java b/activemq-http/src/main/java/org/apache/activemq/transport/util/HttpTransportUtils.java
index a8309b6..6a5d0a6 100644
--- a/activemq-http/src/main/java/org/apache/activemq/transport/util/HttpTransportUtils.java
+++ b/activemq-http/src/main/java/org/apache/activemq/transport/util/HttpTransportUtils.java
@@ -27,7 +27,7 @@
 
         StringBuilder remoteAddress = new StringBuilder();
         String scheme = request.getScheme();
-        remoteAddress.append(scheme != null && scheme.toLowerCase().equals("https") ? "wss://" : "ws://");
+        remoteAddress.append(scheme != null && scheme.equalsIgnoreCase("https") ? "wss://" : "ws://");
         remoteAddress.append(request.getRemoteAddr());
         remoteAddress.append(":");
         remoteAddress.append(request.getRemotePort());
