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 <[email protected]> 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>
