You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2023/05/11 12:09:21 UTC

[jmeter] 01/02: fix(deps): update dependency com.google.errorprone:error_prone_core to v2.19.1

This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit e8be4016d631cd176740eac939f216a574964bee
Author: Renovate Bot <bo...@renovateapp.com>
AuthorDate: Thu May 11 08:58:20 2023 +0000

    fix(deps): update dependency com.google.errorprone:error_prone_core to v2.19.1
    
    ErrorProne brings StringCaseLocaleUsage verification that forbids the use of default locale
    
    See https://errorprone.info/bugpattern/StringCaseLocaleUsage
    Closes https://github.com/apache/jmeter/pull/5914
---
 .../main/kotlin/build-logic.errorprone.gradle.kts   |  2 +-
 checksum.xml                                        |  4 ++++
 .../67/91a4ba316974a467.fingerprints                |  1 +
 .../bf/5e975cb00c643dbf.fingerprints                |  1 +
 .../bf/d5f46bc0b86af5dc56df58f05e975cb00c643dbf.asc | 21 +++++++++++++++++++++
 .../jmeter/visualizers/backend/ErrorMetric.java     |  7 ++++++-
 .../jmeter/visualizers/backend/WindowMode.java      |  4 +++-
 .../apache/jmeter/config/gui/SimpleConfigGui.java   |  2 +-
 .../org/apache/jmeter/control/IfController.java     |  1 -
 .../apache/jmeter/engine/StandardJMeterEngine.java  |  2 +-
 .../org/apache/jmeter/gui/JMeterFileFilter.java     |  3 ++-
 .../apache/jmeter/gui/action/RawTextSearcher.java   | 15 ++++-----------
 .../apache/jmeter/gui/action/RegexpSearcher.java    |  6 +-----
 .../apache/jmeter/gui/action/SSLManagerCommand.java |  3 ++-
 .../jmeter/report/dashboard/ReportGenerator.java    |  3 ++-
 .../apache/jmeter/testbeans/gui/TextAreaEditor.java |  3 ++-
 .../org/apache/jmeter/functions/ChangeCase.java     |  3 ++-
 .../jmeter/functions/DigestEncodeFunction.java      |  3 ++-
 .../org/apache/jmeter/functions/LogFunction.java    |  3 ++-
 .../org/apache/jmeter/functions/StringToFile.java   |  3 ++-
 .../apache/jmeter/functions/ThreadGroupName.java    |  2 +-
 .../apache/jorphan/gui/ObjectTableModelTest.java    |  3 ++-
 .../jmeter/protocol/http/curl/BasicCurlParser.java  |  6 +++---
 .../protocol/http/parser/JsoupBasedHtmlParser.java  |  3 ++-
 .../protocol/http/proxy/gui/ProxyControlGui.java    |  4 ++--
 .../jmeter/protocol/http/util/ConversionUtils.java  |  5 +----
 xdocs/changes.xml                                   |  1 +
 27 files changed, 72 insertions(+), 42 deletions(-)

diff --git a/build-logic/verification/src/main/kotlin/build-logic.errorprone.gradle.kts b/build-logic/verification/src/main/kotlin/build-logic.errorprone.gradle.kts
index 545e660b0f..f7f0061fb1 100644
--- a/build-logic/verification/src/main/kotlin/build-logic.errorprone.gradle.kts
+++ b/build-logic/verification/src/main/kotlin/build-logic.errorprone.gradle.kts
@@ -29,7 +29,7 @@ if (buildParameters.enableErrorprone) {
     apply(plugin = "net.ltgt.errorprone")
 
     dependencies {
-        "errorprone"("com.google.errorprone:error_prone_core:2.18.0")
+        "errorprone"("com.google.errorprone:error_prone_core:2.19.1")
         "annotationProcessor"("com.google.guava:guava-beta-checker:1.0")
     }
 
diff --git a/checksum.xml b/checksum.xml
index 0f07b49cf5..825c6a90d3 100644
--- a/checksum.xml
+++ b/checksum.xml
@@ -44,6 +44,7 @@
     <trusted-key id='e77417ac194160a3fabd04969a259c7ee636c5ed' group='com.google.googlejavaformat' />
     <trusted-key id='694621a7227d8d5289699830abe9f3126bb741c1' group='com.google.guava' />
     <trusted-key id='bdb5fa4fe719d787fb3d3197f6d4a1d411e9d1ae' group='com.google.guava' />
+    <trusted-key id='d5f46bc0b86af5dc56df58f05e975cb00c643dbf' group='com.google.inject' />
     <trusted-key id='b801e2f8ef035068ec1139cc29579f18fa8fd93b' group='com.google.j2objc' />
     <trusted-key id='d75e25b78ebb19e47c0a99bca7764f502a938c99' group='com.google.protobuf' />
     <trusted-key id='f1a51e051f527e0c8e24d54d4b1e11d5a4b91e89' group='com.google.protobuf' />
@@ -206,6 +207,9 @@
     <dependency group='antlr' module='antlr' version='2.7.7'>
       <sha512>311C3115F9F6651D1711C52D1739E25A70F25456CACB9A2CDDE7627498C30B13D721133CC75B39462AD18812A82472EF1B3B9D64FAB5ABB0377C12BF82043A74</sha512>
     </dependency>
+    <dependency group='aopalliance' module='aopalliance' version='1.0'>
+      <sha512>3F44A932D8C00CFEEE2EB057BCD7C301A2D029063E0A916E1E20B3AEC4877D19D67A2FD8AAF58FA2D5A00133D1602128A7F50912FFB6CABC7B0FDC7FBDA3F8A1</sha512>
+    </dependency>
     <dependency group='bsf' module='bsf' version='2.4.0'>
       <sha512>CF2FF6EA53CD13EA842CAD398F1BE24539BEC68A5CBBD088492ADAB50BC782CDE6D9F4C0B6A24DEAEEE537809C90631C43F9A680FF2826C28CCF1B39380954E3</sha512>
     </dependency>
diff --git a/gradle/checksum-dependency-plugin/cached-pgp-keys/67/91a4ba316974a467.fingerprints b/gradle/checksum-dependency-plugin/cached-pgp-keys/67/91a4ba316974a467.fingerprints
new file mode 100644
index 0000000000..e9592d71f9
--- /dev/null
+++ b/gradle/checksum-dependency-plugin/cached-pgp-keys/67/91a4ba316974a467.fingerprints
@@ -0,0 +1 @@
+d5f46bc0b86af5dc56df58f05e975cb00c643dbf
diff --git a/gradle/checksum-dependency-plugin/cached-pgp-keys/bf/5e975cb00c643dbf.fingerprints b/gradle/checksum-dependency-plugin/cached-pgp-keys/bf/5e975cb00c643dbf.fingerprints
new file mode 100644
index 0000000000..e9592d71f9
--- /dev/null
+++ b/gradle/checksum-dependency-plugin/cached-pgp-keys/bf/5e975cb00c643dbf.fingerprints
@@ -0,0 +1 @@
+d5f46bc0b86af5dc56df58f05e975cb00c643dbf
diff --git a/gradle/checksum-dependency-plugin/cached-pgp-keys/bf/d5f46bc0b86af5dc56df58f05e975cb00c643dbf.asc b/gradle/checksum-dependency-plugin/cached-pgp-keys/bf/d5f46bc0b86af5dc56df58f05e975cb00c643dbf.asc
new file mode 100644
index 0000000000..726b8c16ac
--- /dev/null
+++ b/gradle/checksum-dependency-plugin/cached-pgp-keys/bf/d5f46bc0b86af5dc56df58f05e975cb00c643dbf.asc
@@ -0,0 +1,21 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQGNBGHvIbQBDACpPdbz5UIVIWR4cfXyyZEMOG0ayCzJQPsT4eq8XR0o5Y9egfAq
+dRXC8paInsaF/iVL8BJY6CNq4B3dUfJwKDcJiCiPbiQgknqF1HDBqQtCb4akW8f4
+Am1Q6qWxTcJBUtVjjlTMoWcCRwFNP1229ICL6XdfM5djqxOuIcCMIHC55YTldrDK
+5WWgcXC2NZgUbRn7/8dpaCn8iFAyhYjYKAk1lS8kSxCDvQNU9DtdAWtaCosoWBZ7
+mWWIeWp21erk4jgC145GujHYeqynf7VmdIB80u5OeIV6CwJx2ap8AgrKcOCON3Kp
+kYa7fsDGxq6Lbzbc0rzaIfK1wyGo56dMySDK1eZuOY9Es/wzaYfpzx88gn3rrcaw
+HwTKBoug+9z09m/rWy1DThW1gruYMUrxjeyhcdXlEeVrv9EdNCbbfKcg6MbrZ1mu
+Wc9DIAfSQ40Lv2sKxTyubZXxvoyEhD5LTqSKC0tRt9xKjHWWWSG+cyhXu/2hYmp1
+Dq7XvS1p8NKjD6cAEQEAAbkBjQRh7yG0AQwAzUkcci2Ms35HcReeUZLQ5oEiqvbb
+JH0dUHK0IFr4venyXpC2C/2toZiZ231G6miC55MlJiH+8zjZQhb9dFPNaaxvcMX1
+1EzLmm6afnl1BXWwmTHO0fSRl8OYmkVo3vo4fxmngfMWN3D27Xx5F2e51pEGqu2/
+A7rSawKqN/Tbqa0Wmro31PT14/d7bpyRMaotsPvn409WkN+j2qZV0WdqlokcQJGi
+FBsY1YC7jmNRVmSY1l9lzMqTHrFEn1AlfSMJSgnPPueZuI327W5T0B5G3uc77Lcc
+Xx3WEJBp4KdazVixx0gk/k3+GOGkdifxN5qesEgVcYH4Lkt7vYdZmPXxH3tr0h1p
+FpmDZuIgwJrD5/Ck7nHG2ZQf3CiBUtwBE/GR8B6h7gm+E71MvH3m6eMqOWUZ4k1U
+En9mgP4s7sJikpqtG19IYxkQVXRkdo5Q9jQ+95ZCV1O/t7CMGNXmzVc75e+WO7JZ
+iTR7Io9uH5HmbXEpkUOwS+2aWd32IsotfzMbABEBAAE=
+=vpwg
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/src/components/src/main/java/org/apache/jmeter/visualizers/backend/ErrorMetric.java b/src/components/src/main/java/org/apache/jmeter/visualizers/backend/ErrorMetric.java
index 675ce5203c..3ccf49f4c5 100644
--- a/src/components/src/main/java/org/apache/jmeter/visualizers/backend/ErrorMetric.java
+++ b/src/components/src/main/java/org/apache/jmeter/visualizers/backend/ErrorMetric.java
@@ -17,6 +17,8 @@
 
 package org.apache.jmeter.visualizers.backend;
 
+import java.util.Locale;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.report.utils.MetricUtils;
 import org.apache.jmeter.samplers.SampleResult;
@@ -88,7 +90,10 @@ public class ErrorMetric {
 
     @Override
     public int hashCode() {
-        return getResponseCode().toLowerCase().hashCode() + getResponseMessage().toLowerCase().hashCode();
+        int hash = 1;
+        hash = 31 * hash + getResponseCode().toLowerCase(Locale.ROOT).hashCode();
+        hash = 31 * hash + getResponseMessage().toLowerCase(Locale.ROOT).hashCode();
+        return hash;
     }
 
 }
diff --git a/src/components/src/main/java/org/apache/jmeter/visualizers/backend/WindowMode.java b/src/components/src/main/java/org/apache/jmeter/visualizers/backend/WindowMode.java
index d02767dacc..4a9bd0da33 100644
--- a/src/components/src/main/java/org/apache/jmeter/visualizers/backend/WindowMode.java
+++ b/src/components/src/main/java/org/apache/jmeter/visualizers/backend/WindowMode.java
@@ -17,6 +17,8 @@
 
 package org.apache.jmeter.visualizers.backend;
 
+import java.util.Locale;
+
 import org.apache.jmeter.util.JMeterUtils;
 
 /**
@@ -35,6 +37,6 @@ public enum WindowMode {
      */
     public static WindowMode get() {
         String name = JMeterUtils.getPropDefault("backend_metrics_window_mode", FIXED.name());
-        return WindowMode.valueOf(name.toUpperCase());
+        return WindowMode.valueOf(name.toUpperCase(Locale.ROOT));
     }
 }
diff --git a/src/core/src/main/java/org/apache/jmeter/config/gui/SimpleConfigGui.java b/src/core/src/main/java/org/apache/jmeter/config/gui/SimpleConfigGui.java
index 500e8305d8..08e21c95f8 100644
--- a/src/core/src/main/java/org/apache/jmeter/config/gui/SimpleConfigGui.java
+++ b/src/core/src/main/java/org/apache/jmeter/config/gui/SimpleConfigGui.java
@@ -215,7 +215,7 @@ public class SimpleConfigGui extends AbstractConfigGui implements ActionListener
      * @return a GUI panel containing the buttons
      */
     private JPanel createButtonPanel() {
-        /** A button for adding new parameters to the table. */
+        // A button for adding new parameters to the table.
         JButton add = new JButton(JMeterUtils.getResString("add")); //$NON-NLS-1$
         add.setActionCommand(ADD);
         add.addActionListener(this);
diff --git a/src/core/src/main/java/org/apache/jmeter/control/IfController.java b/src/core/src/main/java/org/apache/jmeter/control/IfController.java
index 05e214a493..113fb075b3 100644
--- a/src/core/src/main/java/org/apache/jmeter/control/IfController.java
+++ b/src/core/src/main/java/org/apache/jmeter/control/IfController.java
@@ -96,7 +96,6 @@ public class IfController extends GenericController implements Serializable, Thr
             try {
                 Scriptable scope = cx.initStandardObjects(null);
                 Object cxResultObject = cx.evaluateString(scope, condition
-                /** * conditionString ** */
                 , "<cmd>", 1, null);
                 result = computeResultFromString(condition, Context.toString(cxResultObject));
             } catch (Exception e) {
diff --git a/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java b/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java
index af8b226f68..7705e98537 100644
--- a/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java
+++ b/src/core/src/main/java/org/apache/jmeter/engine/StandardJMeterEngine.java
@@ -399,7 +399,7 @@ public class StandardJMeterEngine implements JMeterEngine, Runnable {
             JMeterUtils.reportErrorToUser("Error occurred compiling the tree: - see log file", e);
             return; // no point continuing
         }
-        /**
+        /*
          * Notification of test listeners needs to happen after function
          * replacement, but before setting RunningVersion to true.
          */
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/JMeterFileFilter.java b/src/core/src/main/java/org/apache/jmeter/gui/JMeterFileFilter.java
index 5d88e0b678..04ca637c0c 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/JMeterFileFilter.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/JMeterFileFilter.java
@@ -19,6 +19,7 @@ package org.apache.jmeter.gui;
 
 import java.io.File;
 import java.util.Arrays;
+import java.util.Locale;
 
 /**
  * A file filter which allows files to be filtered based on a list of allowed
@@ -71,7 +72,7 @@ public class JMeterFileFilter extends javax.swing.filechooser.FileFilter impleme
      */
     @Override
     public boolean accept(File f) {
-        return (allowDirs && f.isDirectory()) || accept(f.getName().toLowerCase());
+        return (allowDirs && f.isDirectory()) || accept(f.getName().toLowerCase(Locale.ROOT));
         // TODO - why lower case? OK to use the default Locale?
     }
 
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/RawTextSearcher.java b/src/core/src/main/java/org/apache/jmeter/gui/action/RawTextSearcher.java
index 26a9782e93..946e9c3163 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/RawTextSearcher.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/RawTextSearcher.java
@@ -28,20 +28,14 @@ public class RawTextSearcher implements Searcher {
     private final boolean caseSensitive;
     private final String textToSearch;
 
-
     /**
      * Constructor
-     * @param caseSensitive is search case sensitive
+     * @param caseSensitive is search case-sensitive
      * @param textToSearch Text to search
      */
     public RawTextSearcher(boolean caseSensitive, String textToSearch) {
-        super();
         this.caseSensitive = caseSensitive;
-        if (caseSensitive) {
-            this.textToSearch = textToSearch;
-        } else {
-            this.textToSearch = textToSearch.toLowerCase();
-        }
+        this.textToSearch = textToSearch;
     }
 
     /**
@@ -50,9 +44,8 @@ public class RawTextSearcher implements Searcher {
     @Override
     public boolean search(List<String> textTokens) {
         return textTokens.stream()
-                .filter(token -> !StringUtils.isEmpty(token))
-                .map(token -> caseSensitive ? token : token.toLowerCase())
-                .anyMatch(token -> token.contains(textToSearch));
+                .filter(StringUtils::isNotEmpty)
+                .anyMatch(token -> caseSensitive ? token.contains(textToSearch) : StringUtils.containsAnyIgnoreCase(token, textToSearch));
     }
 
     @Override
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/RegexpSearcher.java b/src/core/src/main/java/org/apache/jmeter/gui/action/RegexpSearcher.java
index ef84d3dd5a..c672bb3280 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/RegexpSearcher.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/RegexpSearcher.java
@@ -18,7 +18,6 @@
 package org.apache.jmeter.gui.action;
 
 import java.util.List;
-import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringUtils;
@@ -54,10 +53,7 @@ public class RegexpSearcher implements Searcher {
         }
         return textTokens.stream()
                 .filter(token -> !StringUtils.isEmpty(token))
-                .map(token -> caseSensitive ?
-                        pattern.matcher(token) :
-                        pattern.matcher(token.toLowerCase()))
-                .anyMatch(Matcher::find);
+                .anyMatch(token -> pattern.matcher(token).find());
     }
 
     @Override
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/SSLManagerCommand.java b/src/core/src/main/java/org/apache/jmeter/gui/action/SSLManagerCommand.java
index 37d81208a0..e3a1e47d5a 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/SSLManagerCommand.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/SSLManagerCommand.java
@@ -22,6 +22,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.Set;
 
 import javax.swing.JFileChooser;
@@ -127,7 +128,7 @@ public class SSLManagerCommand extends AbstractAction {
          */
         @Override
         public boolean accept(File testFile) {
-            String lowerCaseName = testFile.getName().toLowerCase();
+            String lowerCaseName = testFile.getName().toLowerCase(Locale.ROOT);
             return testFile.isDirectory()
             || lowerCaseName.endsWith(".p12")  //$NON-NLS-1$
             || lowerCaseName.endsWith(".jks")
diff --git a/src/core/src/main/java/org/apache/jmeter/report/dashboard/ReportGenerator.java b/src/core/src/main/java/org/apache/jmeter/report/dashboard/ReportGenerator.java
index 510f3ccc16..ec50e47a8e 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/dashboard/ReportGenerator.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/dashboard/ReportGenerator.java
@@ -22,6 +22,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
 import java.util.regex.Matcher;
@@ -181,7 +182,7 @@ public class ReportGenerator {
         Matcher matcher = POTENTIAL_CAMEL_CASE_PATTERN.matcher(propertyKey);
         StringBuffer buffer = new StringBuffer(); // NOSONAR Unfortunately Matcher does not support StringBuilder
         while (matcher.find()) {
-            matcher.appendReplacement(buffer, matcher.group(1).toUpperCase());
+            matcher.appendReplacement(buffer, matcher.group(1).toUpperCase(Locale.ROOT));
         }
         matcher.appendTail(buffer);
         return buffer.toString();
diff --git a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TextAreaEditor.java b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TextAreaEditor.java
index 06e0a35003..76d2e9b2f4 100644
--- a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TextAreaEditor.java
+++ b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TextAreaEditor.java
@@ -24,6 +24,7 @@ import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.beans.PropertyDescriptor;
 import java.beans.PropertyEditorSupport;
+import java.util.Locale;
 
 import org.apache.jmeter.gui.util.JSyntaxTextArea;
 import org.apache.jmeter.gui.util.JTextScrollPane;
@@ -133,7 +134,7 @@ public class TextAreaEditor extends PropertyEditorSupport implements FocusListen
         Object source = evt.getSource();
         if (source instanceof ComboStringEditor) {
             ComboStringEditor cse = (ComboStringEditor) source;
-            String lang = cse.getAsText().toLowerCase();
+            String lang = cse.getAsText().toLowerCase(Locale.ROOT);
             textUI.setLanguage(lang);
         }
     }
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/ChangeCase.java b/src/functions/src/main/java/org/apache/jmeter/functions/ChangeCase.java
index 2798ca48c5..deb5c88a05 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/ChangeCase.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/ChangeCase.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.EnumSet;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.engine.util.CompoundVariable;
@@ -78,7 +79,7 @@ public class ChangeCase extends AbstractFunction {
     protected String changeCase(String originalString, String mode) {
         String targetString = originalString;
         // mode is case insensitive, allow upper for example
-        ChangeCaseMode changeCaseMode = ChangeCaseMode.typeOf(mode.toUpperCase());
+        ChangeCaseMode changeCaseMode = ChangeCaseMode.typeOf(mode.toUpperCase(Locale.ROOT));
         if (changeCaseMode != null) {
             switch (changeCaseMode) {
             case UPPER:
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/DigestEncodeFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/DigestEncodeFunction.java
index 70401906a8..3bc2d990f5 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/DigestEncodeFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/DigestEncodeFunction.java
@@ -23,6 +23,7 @@ import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.lang3.StringUtils;
@@ -100,7 +101,7 @@ public class DigestEncodeFunction extends AbstractFunction {
     private static String uppercase(String encodedString, CompoundVariable[] values, int index) {
         String shouldUpperCase = values.length > index ? values[index].execute() : null;
         if (Boolean.parseBoolean(shouldUpperCase)) {
-            return encodedString.toUpperCase();
+            return encodedString.toUpperCase(Locale.ROOT);
         }
         return encodedString;
     }
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction.java
index cd729cb850..de5b0f9a57 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction.java
@@ -20,6 +20,7 @@ package org.apache.jmeter.functions;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.jmeter.engine.util.CompoundVariable;
 import org.apache.jmeter.samplers.SampleResult;
@@ -141,7 +142,7 @@ public class LogFunction extends AbstractFunction {
      */
     static synchronized void logDetails(Logger logger, String stringToLog, String priorityString, Throwable throwable,
             String comment) {
-        String prio = priorityString.trim().toUpperCase();
+        String prio = priorityString.trim().toUpperCase(Locale.ROOT);
 
         if ("OUT".equals(prio)) {//$NON-NLS-1
             printDetails(System.out, stringToLog, throwable, comment);
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java b/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
index f93b753897..25d644e8ee 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/StringToFile.java
@@ -26,6 +26,7 @@ import java.nio.charset.UnsupportedCharsetException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.Locale;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
@@ -82,7 +83,7 @@ public class StringToFile extends AbstractFunction {
         String content = ((CompoundVariable) values[1]).execute();
         boolean append = true;
         if (values.length >= 3) {
-            String appendString = ((CompoundVariable) values[2]).execute().toLowerCase().trim();
+            String appendString = ((CompoundVariable) values[2]).execute().toLowerCase(Locale.ROOT).trim();
             if (!appendString.isEmpty()) {
                 append = Boolean.parseBoolean(appendString);
             }
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/ThreadGroupName.java b/src/functions/src/main/java/org/apache/jmeter/functions/ThreadGroupName.java
index e465f000ae..08a4386708 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/ThreadGroupName.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/ThreadGroupName.java
@@ -40,10 +40,10 @@ public class ThreadGroupName extends AbstractFunctionByKey {
         super(KEY, 0); //$NON-NLS-1$
     }
 
-    @Override
     /**
      * Get current thread group using sampler's context
      */
+    @Override
     public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
         JMeterContext context;
         if (currentSampler != null) {
diff --git a/src/jorphan/src/test/java/org/apache/jorphan/gui/ObjectTableModelTest.java b/src/jorphan/src/test/java/org/apache/jorphan/gui/ObjectTableModelTest.java
index c3555a4e89..441de63604 100644
--- a/src/jorphan/src/test/java/org/apache/jorphan/gui/ObjectTableModelTest.java
+++ b/src/jorphan/src/test/java/org/apache/jorphan/gui/ObjectTableModelTest.java
@@ -22,6 +22,7 @@ import static java.util.stream.IntStream.range;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.util.Arrays;
+import java.util.Locale;
 import java.util.stream.IntStream;
 
 import javax.swing.event.TableModelEvent;
@@ -62,7 +63,7 @@ public class ObjectTableModelTest {
     @BeforeEach
     public void init() {
         String[] headers = { "a", "b", "c" };
-        Functor[] readFunctors = Arrays.stream(headers).map(name -> "get" + name.toUpperCase()).map(Functor::new).toArray(n -> new Functor[n]);
+        Functor[] readFunctors = Arrays.stream(headers).map(name -> "get" + name.toUpperCase(Locale.ROOT)).map(Functor::new).toArray(Functor[]::new);
         Functor[] writeFunctors = new Functor[headers.length];
         Class<?>[] editorClasses = new Class<?>[headers.length];
         Arrays.fill(editorClasses, String.class);
diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java
index 0574ae2e38..224ea30794 100644
--- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java
+++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/curl/BasicCurlParser.java
@@ -285,8 +285,8 @@ public class BasicCurlParser {
          * @param limitRate the maximum transfer rate
          */
         public void setLimitRate(String limitRate) {
-            String unit = limitRate.substring(limitRate.length() - 1, limitRate.length()).toLowerCase();
-            int value = Integer.parseInt(limitRate.substring(0, limitRate.length() - 1).toLowerCase());
+            String unit = limitRate.substring(limitRate.length() - 1, limitRate.length()).toLowerCase(Locale.ROOT);
+            int value = Integer.parseInt(limitRate.substring(0, limitRate.length() - 1).toLowerCase(Locale.ROOT));
             switch (unit) {
             case "k":
                 this.limitRate = value * ONE_KILOBYTE_IN_CPS;
@@ -914,7 +914,7 @@ public class BasicCurlParser {
     * @param authorization the object of authorization
     */
    private static void setAuthMechanism(String mechanism, Authorization authorization) {
-       switch (mechanism.toLowerCase()) {
+       switch (mechanism.toLowerCase(Locale.ROOT)) {
        case "basic":
            authorization.setMechanism(Mechanism.BASIC);
            break;
diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/parser/JsoupBasedHtmlParser.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/parser/JsoupBasedHtmlParser.java
index 60f9c754de..10e519075a 100644
--- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/parser/JsoupBasedHtmlParser.java
+++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/parser/JsoupBasedHtmlParser.java
@@ -20,6 +20,7 @@ package org.apache.jmeter.protocol.http.parser;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Iterator;
+import java.util.Locale;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.protocol.http.util.ConversionUtils;
@@ -75,7 +76,7 @@ public class JsoupBasedHtmlParser extends HTMLParser {
                 return;
             }
             Element tag = (Element) node;
-            String tagName = tag.tagName().toLowerCase();
+            String tagName = tag.tagName().toLowerCase(Locale.ROOT);
             if (tagName.equals(TAG_BODY)) {
                 extractAttribute(tag, ATT_BACKGROUND);
             } else if (tagName.equals(TAG_SCRIPT)) {
diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
index e5e99f8b0b..7ac8c0ae97 100644
--- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
+++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/proxy/gui/ProxyControlGui.java
@@ -1174,14 +1174,14 @@ public class ProxyControlGui extends LogicControllerGui implements JMeterGUIComp
         deleteButton.addActionListener(this);
         buttonPanel.add(deleteButton);
 
-        /** A button for adding new excludes/includes to the table from the clipboard. */
+        // A button for adding new excludes/includes to the table from the clipboard.
         JButton addFromClipboard = new JButton(JMeterUtils.getResString("add_from_clipboard")); // $NON-NLS-1$
         addFromClipboard.setActionCommand(copyFromClipboard);
         addFromClipboard.addActionListener(this);
         buttonPanel.add(addFromClipboard);
 
         if(addSuggestedExcludes != null) {
-            /** A button for adding suggested excludes. */
+            // A button for adding suggested excludes.
             JButton addFromSuggestedExcludes = new JButton(JMeterUtils.getResString("add_from_suggested_excludes")); // $NON-NLS-1$
             addFromSuggestedExcludes.setActionCommand(addSuggestedExcludes);
             addFromSuggestedExcludes.addActionListener(this);
diff --git a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/ConversionUtils.java b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/ConversionUtils.java
index 4355801ce6..f4f9866955 100644
--- a/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/ConversionUtils.java
+++ b/src/protocol/http/src/main/java/org/apache/jmeter/protocol/http/util/ConversionUtils.java
@@ -182,10 +182,7 @@ public class ConversionUtils {
             return url;
         }
 
-        /**
-         * http://auth@host:port/path1/path2/path3/?query#anchor
-         */
-
+        // http://auth@host:port/path1/path2/path3/?query#anchor
         // get to 'path' part of the URL, preserving schema, auth, host if
         // present
 
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 2c6ace3f66..5819e64aad 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -100,6 +100,7 @@ Summary
 <ul>
   <li><pr>5792</pr>Add KeyStroke for start_no_timers (Start no pauses: CRTL+SHIFT+n)</li>
   <li><pr>5899</pr>Speed up CPU-bound tests by skipping <code>recoverRunningVersion</code> for elements that are shared between threads (the ones that implement <code>NoThreadClone</code>)</li>
+  <li><pr>5914</pr>Use <code>Locale.ROOT</code> instead of default locale for <code>toUpperCase</code>, and <code>toLowerCase</code> to avoid surprises with dotless I in <code>tr_TR</code> locale</li>
 </ul>
 
 <ch_section>Non-functional changes</ch_section>