diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 83c7f53618e..3850f04c9d1 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -46,3 +46,21 @@ jobs:
job-id: jdk14
multi-cache-enabled: false
arguments: --scan --no-parallel build -x distTar -x distTarSource -Dskip.test_TestDNSCacheManager.testWithCustomResolverAnd1Server=true
+
+ errorprone:
+ name: 'Error Prone (JDK 11)'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 50
+ - name: 'Set up JDK 11'
+ uses: actions/setup-java@v1
+ with:
+ java-version: 11
+ - uses: burrunan/gradle-cache-action@v1
+ name: Test
+ with:
+ job-id: errprone
+ multi-cache-enabled: false
+ arguments: --scan --no-parallel --no-daemon -PenableErrorprone classes
diff --git a/build.gradle.kts b/build.gradle.kts
index 2bbc5f45b5d..453627316a1 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -24,6 +24,7 @@ import com.github.vlsi.gradle.git.dsl.gitignore
import com.github.vlsi.gradle.properties.dsl.lastEditYear
import com.github.vlsi.gradle.properties.dsl.props
import com.github.vlsi.gradle.release.RepositoryType
+import net.ltgt.gradle.errorprone.errorprone
import org.ajoberstar.grgit.Grgit
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.sonarqube.gradle.SonarQubeProperties
@@ -36,6 +37,7 @@ plugins {
id("org.nosphere.apache.rat")
id("com.github.autostyle")
id("com.github.spotbugs")
+ id("net.ltgt.errorprone") apply false
id("org.sonarqube")
id("com.github.vlsi.crlf")
id("com.github.vlsi.gradle-extensions")
@@ -147,9 +149,11 @@ val jacocoEnabled by extra {
// Do not enable spotbugs by default. Execute it only when -Pspotbugs is present
val enableSpotBugs = props.bool("spotbugs", default = false)
+val enableErrorprone by props()
val ignoreSpotBugsFailures by props()
val skipCheckstyle by props()
val skipAutostyle by props()
+val werror by props(true) // treat javac warnings as errors
// Allow to skip building source/binary distributions
val skipDist by extra {
boolProp("skipDist") ?: false
@@ -381,6 +385,37 @@ allprojects {
dependsOn("checkstyleAll")
}
}
+
+ if (enableErrorprone) {
+ apply(plugin = "net.ltgt.errorprone")
+ dependencies {
+ "errorprone"("com.google.errorprone:error_prone_core:${"errorprone".v}")
+ "annotationProcessor"("com.google.guava:guava-beta-checker:1.0")
+ }
+ tasks.withType().configureEach {
+ options.compilerArgs.addAll(listOf("-Xmaxerrs", "10000", "-Xmaxwarns", "10000"))
+ options.errorprone {
+ disableWarningsInGeneratedCode.set(true)
+ errorproneArgs.add("-XepExcludedPaths:.*/javacc/.*")
+ disable(
+ "ComplexBooleanConstant",
+ "EqualsGetClass",
+ "OperatorPrecedence",
+ "MutableConstantField",
+ // "ReferenceEquality",
+ "SameNameButDifferent",
+ "TypeParameterUnusedInFormals"
+ )
+ // Analyze issues, and enable the check
+ disable(
+ "MissingSummary",
+ "EmptyBlockTag",
+ "BigDecimalEquals",
+ "StringSplitter"
+ )
+ }
+ }
+ }
}
plugins.withId("groovy") {
if (!skipAutostyle) {
@@ -468,6 +503,10 @@ allprojects {
tasks {
withType().configureEach {
options.encoding = "UTF-8"
+ options.compilerArgs.add("-Xlint:deprecation")
+ if (werror) {
+ options.compilerArgs.add("-Werror")
+ }
}
withType().configureEach {
filteringCharset = "UTF-8"
diff --git a/checksum.xml b/checksum.xml
index acec18f2ef7..6891cafe094 100644
--- a/checksum.xml
+++ b/checksum.xml
@@ -12,12 +12,17 @@
+
+
+
+
+
@@ -28,7 +33,9 @@
+
+
@@ -144,6 +151,7 @@
+
@@ -152,6 +160,7 @@
+
@@ -188,6 +197,9 @@
CB312B3F571D91EF183C119D878F50464FFD97F853B7311CBA386463F295E8B7B3A5A89ED4269A045CACD5AA7CB4C803D4882854A0FDDEFA9BBC28C72AA6C786
+
+ DC1FA477AE67F94B7CA427F1F88FD3C56E562EB3ED92A3CBC4CC116258EB3856F4B53C99506FDC279F6983EAE74BA21271E4A152F5DB8B41392FFCBB6B087C78
+
16D30BE564723B74F312B4E7D06F349370FB6726B3162778C869CD723ECA2A40C4972C2757B3E107E1820CEC0D70B0BD2B96EFCD466518FC64495F7AEF97967A
diff --git a/extras/startup.bsh b/extras/startup.bsh
index 9032cb193cf..663b83881d7 100644
--- a/extras/startup.bsh
+++ b/extras/startup.bsh
@@ -33,7 +33,6 @@ bsh.system.shutdownOnExit = false;
print("Startup script running");
import org.apache.jmeter.util.JMeterUtils;
-import org.apache.jorphan.logging.LoggingManager;
getprop(p){// get a JMeter property
return JMeterUtils.getPropDefault(p,"");
@@ -49,7 +48,8 @@ print(p + " = " + getprop(p));
}
loglevel(String priority, String category){
-LoggingManager.setPriority(priority, category);
+// Previous implementation delegated the call to LoggingManager which
+// was deprecated since JMeter 3.2
}
logdebug(String text){
diff --git a/gradle.properties b/gradle.properties
index 131226a6cca..a585d227625 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -34,6 +34,7 @@ jmeter.version=5.3.1
# Tools
checkstyle.version=8.35
+errorprone.version=2.4.0
jacoco.version=0.8.5
spotbugs.version=4.1.2
velocity.version=1.7
@@ -44,6 +45,7 @@ com.github.spotbugs.version=4.5.0
com.github.vlsi.checksum-dependency.sha512=4D1A76F38F327CEA0C723D9BDD9ABFE16933769052F47BCECD555DDD1A6CD0A9C21E3CC8F9E1B92780F9B443070D4844889EE9ECB0690D30E50AAB085096D8E1
com.github.vlsi.checksum-dependency.version=1.70
com.github.vlsi.vlsi-release-plugins.version=1.70
+net.ltgt.errorprone.version=1.2.1
org.jetbrains.gradle.plugin.idea-ext.version=0.5
org.nosphere.apache.rat.version=0.7.0
org.sonarqube.version=3.0
diff --git a/settings.gradle.kts b/settings.gradle.kts
index df160ae6f23..e8bb2056323 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -26,6 +26,7 @@ pluginManagement {
idv("com.github.vlsi.gradle-extensions", "com.github.vlsi.vlsi-release-plugins")
idv("com.github.vlsi.ide", "com.github.vlsi.vlsi-release-plugins")
idv("com.github.vlsi.stage-vote-release", "com.github.vlsi.vlsi-release-plugins")
+ idv("net.ltgt.errorprone")
idv("org.jetbrains.gradle.plugin.idea-ext")
idv("org.nosphere.apache.rat")
idv("org.sonarqube")
diff --git a/src/bshclient/src/main/java/org/apache/jmeter/util/BeanShellClient.java b/src/bshclient/src/main/java/org/apache/jmeter/util/BeanShellClient.java
index 081fe5f6d2a..207009bd905 100644
--- a/src/bshclient/src/main/java/org/apache/jmeter/util/BeanShellClient.java
+++ b/src/bshclient/src/main/java/org/apache/jmeter/util/BeanShellClient.java
@@ -17,12 +17,14 @@
package org.apache.jmeter.util;
-import java.io.FileReader;
+import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
// N.B. Do not call any JMeter methods; the jar is standalone
@@ -65,7 +67,7 @@ public static void main(String [] args) throws Exception{
sendLine("};", os);
int b;
- try (InputStreamReader fis = new FileReader(file)) {
+ try (BufferedReader fis = Files.newBufferedReader(Paths.get(file))) {
while ((b = fis.read()) != -1) {
os.write(b);
}
@@ -80,7 +82,7 @@ public static void main(String [] args) throws Exception{
private static void sendLine( String line, OutputStream outPipe )
throws IOException
{
- outPipe.write( line.getBytes() ); // TODO - charset?
+ outPipe.write(line.getBytes(StandardCharsets.UTF_8));
outPipe.flush();
}
@@ -93,6 +95,7 @@ public SockRead(InputStream _is) {
}
@Override
+ @SuppressWarnings("CatchAndPrintStackTrace")
public void run(){
System.out.println("Reading responses from server ...");
int x = 0;
diff --git a/src/components/src/main/java/org/apache/jmeter/assertions/CompareAssertion.java b/src/components/src/main/java/org/apache/jmeter/assertions/CompareAssertion.java
index 508b24f288c..96d78ba6083 100644
--- a/src/components/src/main/java/org/apache/jmeter/assertions/CompareAssertion.java
+++ b/src/components/src/main/java/org/apache/jmeter/assertions/CompareAssertion.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.assertions;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.event.LoopIterationEvent;
@@ -170,7 +170,7 @@ private String filterString(final String content) {
@Override
public void iterationStart(LoopIterationEvent iterEvent) {
- responses = new LinkedList<>();
+ responses = new ArrayList<>();
}
/**
diff --git a/src/components/src/main/java/org/apache/jmeter/assertions/HTMLAssertion.java b/src/components/src/main/java/org/apache/jmeter/assertions/HTMLAssertion.java
index d9c1a143d11..8fc41ea1cdd 100644
--- a/src/components/src/main/java/org/apache/jmeter/assertions/HTMLAssertion.java
+++ b/src/components/src/main/java/org/apache/jmeter/assertions/HTMLAssertion.java
@@ -19,12 +19,14 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serializable;
import java.io.StringWriter;
+import java.io.Writer;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.text.MessageFormat;
import org.apache.commons.lang3.StringUtils;
@@ -191,7 +193,7 @@ private void writeOutput(String inOutput) {
// check if filename defined
if (StringUtils.isNotBlank(filename)) {
- try (FileWriter writer = new FileWriter(filename, false)){
+ try (Writer writer = Files.newBufferedWriter(Paths.get(filename))) {
// write to file
writer.write(inOutput);
log.debug("writeOutput() -> output successfully written to file: {}", filename);
diff --git a/src/components/src/main/java/org/apache/jmeter/assertions/XMLAssertion.java b/src/components/src/main/java/org/apache/jmeter/assertions/XMLAssertion.java
index 5e820696da4..6aa6d113ae9 100644
--- a/src/components/src/main/java/org/apache/jmeter/assertions/XMLAssertion.java
+++ b/src/components/src/main/java/org/apache/jmeter/assertions/XMLAssertion.java
@@ -21,6 +21,9 @@
import java.io.Serializable;
import java.io.StringReader;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParserFactory;
+
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.testelement.AbstractTestElement;
import org.apache.jmeter.testelement.ThreadListener;
@@ -29,7 +32,6 @@
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
/**
* Checks if the result is a well-formed XML content using {@link XMLReader}
@@ -45,10 +47,12 @@ public class XMLAssertion extends AbstractTestElement implements Serializable, A
@Override
protected XMLReader initialValue() {
try {
- XMLReader reader = XMLReaderFactory.createXMLReader();
+ XMLReader reader = SAXParserFactory.newInstance()
+ .newSAXParser()
+ .getXMLReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
return reader;
- } catch (SAXException e) {
+ } catch (SAXException | ParserConfigurationException e) {
log.error("Error initializing XMLReader in XMLAssertion", e);
return null;
}
diff --git a/src/components/src/main/java/org/apache/jmeter/config/CSVDataSet.java b/src/components/src/main/java/org/apache/jmeter/config/CSVDataSet.java
index dab31903eb0..f08a5f34f08 100644
--- a/src/components/src/main/java/org/apache/jmeter/config/CSVDataSet.java
+++ b/src/components/src/main/java/org/apache/jmeter/config/CSVDataSet.java
@@ -219,21 +219,21 @@ private void initVars(FileServer server, final JMeterContext context, String del
trimVarNames(vars);
}
- private void setAlias(final JMeterContext context, String fileName) {
+ private void setAlias(final JMeterContext context, String alias) {
String mode = getShareMode();
int modeInt = CSVDataSetBeanInfo.getShareModeAsInt(mode);
switch(modeInt){
case CSVDataSetBeanInfo.SHARE_ALL:
- alias = fileName;
+ this.alias = alias;
break;
case CSVDataSetBeanInfo.SHARE_GROUP:
- alias = fileName+"@"+System.identityHashCode(context.getThreadGroup());
+ this.alias = alias + "@" + System.identityHashCode(context.getThreadGroup());
break;
case CSVDataSetBeanInfo.SHARE_THREAD:
- alias = fileName+"@"+System.identityHashCode(context.getThread());
+ this.alias = alias + "@" + System.identityHashCode(context.getThread());
break;
default:
- alias = fileName+"@"+mode; // user-specified key
+ this.alias = alias + "@" + mode; // user-specified key
break;
}
}
diff --git a/src/components/src/main/java/org/apache/jmeter/config/RandomVariableConfig.java b/src/components/src/main/java/org/apache/jmeter/config/RandomVariableConfig.java
index 3651dc8c4b2..478aae865b5 100644
--- a/src/components/src/main/java/org/apache/jmeter/config/RandomVariableConfig.java
+++ b/src/components/src/main/java/org/apache/jmeter/config/RandomVariableConfig.java
@@ -142,6 +142,7 @@ private String formatNumber(long value){
}
/**
+ * Returns the minimum value (inclusive).
* @return the minValue
*/
public synchronized String getMinimumValue() {
@@ -149,6 +150,7 @@ public synchronized String getMinimumValue() {
}
/**
+ * Configures the minimum value (inclusive).
* @param minValue the minValue to set
*/
public synchronized void setMinimumValue(String minValue) {
@@ -156,6 +158,7 @@ public synchronized void setMinimumValue(String minValue) {
}
/**
+ * Returns the maximum value (inclusive).
* @return the maxvalue
*/
public synchronized String getMaximumValue() {
@@ -163,6 +166,7 @@ public synchronized String getMaximumValue() {
}
/**
+ * Configures the maximum value (inclusive).
* @param maxvalue the maxvalue to set
*/
public synchronized void setMaximumValue(String maxvalue) {
@@ -170,6 +174,7 @@ public synchronized void setMaximumValue(String maxvalue) {
}
/**
+ * Returns the variable name.
* @return the variableName
*/
public synchronized String getVariableName() {
@@ -177,6 +182,7 @@ public synchronized String getVariableName() {
}
/**
+ * Configures the variable name.
* @param variableName the variableName to set
*/
public synchronized void setVariableName(String variableName) {
@@ -184,6 +190,7 @@ public synchronized void setVariableName(String variableName) {
}
/**
+ * Returns the random seed.
* @return the randomSeed
*/
public synchronized String getRandomSeed() {
@@ -201,6 +208,7 @@ private Random createRandom() {
}
/**
+ * Returns the random seed as long.
* @return the randomSeed as a long
*/
private synchronized Long getRandomSeedAsLong() {
@@ -216,6 +224,7 @@ private synchronized Long getRandomSeedAsLong() {
}
/**
+ * Configures the random seed.
* @param randomSeed the randomSeed to set
*/
public synchronized void setRandomSeed(String randomSeed) {
@@ -223,6 +232,7 @@ public synchronized void setRandomSeed(String randomSeed) {
}
/**
+ * Returns {@code true} if the random is computed per thread.
* @return the perThread
*/
public synchronized boolean getPerThread() {
@@ -230,18 +240,21 @@ public synchronized boolean getPerThread() {
}
/**
+ * Configures if the random is computed per thread.
* @param perThread the perThread to set
*/
public synchronized void setPerThread(boolean perThread) {
this.perThread = perThread;
}
/**
+ * Returns the output format.
* @return the outputFormat
*/
public synchronized String getOutputFormat() {
return outputFormat;
}
/**
+ * Configures the output format.
* @param outputFormat the outputFormat to set
*/
public synchronized void setOutputFormat(String outputFormat) {
diff --git a/src/components/src/main/java/org/apache/jmeter/control/IncludeController.java b/src/components/src/main/java/org/apache/jmeter/control/IncludeController.java
index cde625680ee..2fd00cc725a 100644
--- a/src/components/src/main/java/org/apache/jmeter/control/IncludeController.java
+++ b/src/components/src/main/java/org/apache/jmeter/control/IncludeController.java
@@ -20,7 +20,7 @@
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.util.LinkedList;
+import java.util.ArrayList;
import org.apache.jmeter.gui.tree.JMeterTreeNode;
import org.apache.jmeter.save.SaveService;
@@ -173,7 +173,7 @@ protected HashTree loadIncludedElements() {
* @return HashTree Subset within Test Fragment or Empty HashTree
*/
private HashTree getProperBranch(HashTree tree) {
- for (Object o : new LinkedList<>(tree.list())) {
+ for (Object o : new ArrayList<>(tree.list())) {
TestElement item = (TestElement) o;
//if we found a TestPlan, then we are on our way to the TestFragment
@@ -193,7 +193,7 @@ private HashTree getProperBranch(HashTree tree) {
private void removeDisabledItems(HashTree tree) {
- for (Object o : new LinkedList<>(tree.list())) {
+ for (Object o : new ArrayList<>(tree.list())) {
TestElement item = (TestElement) o;
if (!item.isEnabled()) {
tree.remove(item);
diff --git a/src/components/src/main/java/org/apache/jmeter/control/ModuleController.java b/src/components/src/main/java/org/apache/jmeter/control/ModuleController.java
index 243a4f10e67..6bf5fe369f5 100644
--- a/src/components/src/main/java/org/apache/jmeter/control/ModuleController.java
+++ b/src/components/src/main/java/org/apache/jmeter/control/ModuleController.java
@@ -75,7 +75,7 @@ public Object clone() {
}
/**
- * Sets the (@link JMeterTreeNode) which represents the controller which
+ * Sets the {@link JMeterTreeNode} which represents the controller which
* this object is pointing to. Used for building the test case upon
* execution.
*
@@ -89,7 +89,7 @@ public void setSelectedNode(JMeterTreeNode tn) {
}
/**
- * Gets the (@link JMeterTreeNode) for the Controller
+ * Gets the {@link JMeterTreeNode} for the Controller
*
* @return JMeterTreeNode
*/
@@ -192,6 +192,7 @@ public HashTree getReplacementSubTree() {
return tree;
}
+ @SuppressWarnings("JdkObsolete")
private void createSubTree(HashTree tree, JMeterTreeNode node) {
Enumeration> e = node.children();
while (e.hasMoreElements()) {
@@ -208,6 +209,7 @@ private static JMeterTreeNode cloneTreeNode(JMeterTreeNode node) {
return treeNode;
}
+ @SuppressWarnings("JdkObsolete")
private static void cloneChildren(JMeterTreeNode to, JMeterTreeNode from) {
Enumeration> enumr = from.children();
while (enumr.hasMoreElements()) {
diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/BoundaryExtractor.java b/src/components/src/main/java/org/apache/jmeter/extractor/BoundaryExtractor.java
index f11334ed9d3..e10089b8787 100644
--- a/src/components/src/main/java/org/apache/jmeter/extractor/BoundaryExtractor.java
+++ b/src/components/src/main/java/org/apache/jmeter/extractor/BoundaryExtractor.java
@@ -296,7 +296,7 @@ private List extract(String leftBoundary, String rightBoundary, int matc
}
}
- return matches;
+ return Collections.unmodifiableList(matches);
}
public List extractAll(
diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/HtmlExtractor.java b/src/components/src/main/java/org/apache/jmeter/extractor/HtmlExtractor.java
index 4a59889377e..af1fe30805c 100644
--- a/src/components/src/main/java/org/apache/jmeter/extractor/HtmlExtractor.java
+++ b/src/components/src/main/java/org/apache/jmeter/extractor/HtmlExtractor.java
@@ -188,7 +188,7 @@ private List extractMatchingStrings(
}
}
}
- return result;
+ return Collections.unmodifiableList(result);
}
/**
diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/RegexExtractor.java b/src/components/src/main/java/org/apache/jmeter/extractor/RegexExtractor.java
index 0863da9b37a..6513311c6b9 100644
--- a/src/components/src/main/java/org/apache/jmeter/extractor/RegexExtractor.java
+++ b/src/components/src/main/java/org/apache/jmeter/extractor/RegexExtractor.java
@@ -209,7 +209,7 @@ private List processMatches(Pattern pattern, String regex, SampleRe
}
}
}
- return matches;
+ return Collections.unmodifiableList(matches);
}
private int matchStrings(int matchNumber, Perl5Matcher matcher,
diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java b/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java
index abff458bbd1..2c646579c7c 100644
--- a/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java
+++ b/src/components/src/main/java/org/apache/jmeter/extractor/json/jmespath/JMESPathExtractor.java
@@ -72,9 +72,8 @@ public void process() {
}
try {
- JsonNode result = null;
JsonNode actualObj = OBJECT_MAPPER.readValue(jsonResponse, JsonNode.class);
- result = JMESPathCache.getInstance().get(jsonPathExpression).search(actualObj);
+ JsonNode result = JMESPathCache.getInstance().get(jsonPathExpression).search(actualObj);
if (result.isNull()) {
handleNullResult(vars, refName, defaultValue, matchNumber);
return;
diff --git a/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONManager.java b/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONManager.java
index 03a4ee5c09c..f156f3d7c8c 100644
--- a/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONManager.java
+++ b/src/components/src/main/java/org/apache/jmeter/extractor/json/jsonpath/JSONManager.java
@@ -84,7 +84,7 @@ public List
*
- * @param source The source object that originated the display of the dialog
+ * @param event The source event that originated the display of the dialog
* @return A freshly created search dialog with the parent frame that could be
* found, or no parent otherwise.
*/
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/SelectTemplatesDialog.java b/src/core/src/main/java/org/apache/jmeter/gui/action/SelectTemplatesDialog.java
index bc75a90b0c2..9f017d7c9e0 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/SelectTemplatesDialog.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/SelectTemplatesDialog.java
@@ -33,7 +33,6 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -229,7 +228,7 @@ private boolean checkDirty(final ActionEvent actionEvent) {
private Map getUserParameters(){
Map userParameters = new LinkedHashMap<>();
- for (Entry entry : parametersTextFields.entrySet()) {
+ for (Map.Entry entry : parametersTextFields.entrySet()) {
userParameters.put(entry.getKey(), entry.getValue().getText());
}
return userParameters;
@@ -371,7 +370,7 @@ private JPanel configureParametersPanel(Map parameters) {
int parameterCount = 0;
JPanel gridbagpanel = new JPanel(new GridBagLayout());
- for (Entry entry : parameters.entrySet()) {
+ for (Map.Entry entry : parameters.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
JLabeledTextField paramLabel = new JLabeledTextField(key + " : ");
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/Start.java b/src/core/src/main/java/org/apache/jmeter/gui/action/Start.java
index a7b74b6e9f9..712bb965b24 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/Start.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/Start.java
@@ -21,7 +21,6 @@
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.LinkedList;
import java.util.List;
import java.util.Set;
@@ -231,8 +230,7 @@ private static TreeCloner createTreeClonerForValidation(boolean honorThreadClone
* @param threadGroupsToKeep Array of {@link AbstractThreadGroup} to keep
*/
private void keepOnlySelectedThreadGroupsInHashTree(HashTree testTree, AbstractThreadGroup[] threadGroupsToKeep) {
- LinkedList copyList = new LinkedList<>(testTree.list());
- for (Object o : copyList) {
+ for (Object o : new ArrayList<>(testTree.list())) {
TestElement item = (TestElement) o;
if (o instanceof AbstractThreadGroup) {
if (!isInThreadGroups(item, threadGroupsToKeep)) {
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/action/template/TemplateManager.java b/src/core/src/main/java/org/apache/jmeter/gui/action/template/TemplateManager.java
index 2e516568f41..046ffba8f77 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/action/template/TemplateManager.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/action/template/TemplateManager.java
@@ -152,6 +152,7 @@ public DefaultEntityResolver() {
super();
}
+ @Override
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
if(systemId.endsWith("templates.dtd")) {
return new InputSource(TemplateManager.class.getResourceAsStream("/org/apache/jmeter/gui/action/template/templates.dtd"));
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/logging/GuiLogEventAppender.java b/src/core/src/main/java/org/apache/jmeter/gui/logging/GuiLogEventAppender.java
index fd6a2f9f302..c52dec0d227 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/logging/GuiLogEventAppender.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/logging/GuiLogEventAppender.java
@@ -25,6 +25,7 @@
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.StringLayout;
import org.apache.logging.log4j.core.appender.AbstractAppender;
+import org.apache.logging.log4j.core.config.Property;
import org.apache.logging.log4j.core.config.plugins.Plugin;
import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
import org.apache.logging.log4j.core.config.plugins.PluginElement;
@@ -40,7 +41,7 @@ public class GuiLogEventAppender extends AbstractAppender {
protected GuiLogEventAppender(final String name, final Filter filter, final Layout extends Serializable> layout,
final boolean ignoreExceptions) {
- super(name, filter, layout, ignoreExceptions);
+ super(name, filter, layout, ignoreExceptions, Property.EMPTY_ARRAY);
}
@Override
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeListener.java b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeListener.java
index f5944626925..e2ccf377db5 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeListener.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeListener.java
@@ -237,7 +237,9 @@ public void keyTyped(KeyEvent e) {
}
private boolean isRightClick(MouseEvent e) {
- return e.isPopupTrigger() || (InputEvent.BUTTON2_MASK & e.getModifiers()) > 0 || (InputEvent.BUTTON3_MASK == e.getModifiers());
+ return e.isPopupTrigger() ||
+ (InputEvent.BUTTON2_DOWN_MASK & e.getModifiersEx()) > 0 ||
+ (InputEvent.BUTTON3_DOWN_MASK == e.getModifiersEx());
}
private void displayPopUp(MouseEvent e) {
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeModel.java b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeModel.java
index a4709d006b0..16cc5ddc9a2 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeModel.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeModel.java
@@ -17,9 +17,9 @@
package org.apache.jmeter.gui.tree;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
-import java.util.LinkedList;
import java.util.List;
import javax.swing.tree.DefaultTreeModel;
@@ -34,7 +34,6 @@
import org.apache.jmeter.gui.util.MenuFactory;
import org.apache.jmeter.testelement.TestElement;
import org.apache.jmeter.testelement.TestPlan;
-import org.apache.jmeter.testelement.WorkBench;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.collections.ListedHashTree;
@@ -80,7 +79,7 @@ public JMeterTreeModel(Object o) {
* @return a list of tree nodes of the given type
, or an empty list
*/
public List getNodesOfType(Class> type) {
- List nodeList = new LinkedList<>();
+ List nodeList = new ArrayList<>();
traverseAndFind(type, (JMeterTreeNode) this.getRoot(), nodeList);
return nodeList;
}
@@ -122,7 +121,7 @@ public HashTree addSubTree(HashTree subTree, JMeterTreeNode current) throws Ille
userObject.setFunctionalMode(tp.isFunctionalMode());
userObject.setSerialized(tp.isSerialized());
addSubTree(subTree.getTree(item), current);
- } else if (item instanceof WorkBench) {
+ } else if (isWorkbench(item)) {
//Move item from WorkBench to TestPlan
HashTree workbenchTree = subTree.getTree(item);
if (!workbenchTree.isEmpty()) {
@@ -135,6 +134,11 @@ public HashTree addSubTree(HashTree subTree, JMeterTreeNode current) throws Ille
return getCurrentSubTree(current);
}
+ @SuppressWarnings("deprecation")
+ private boolean isWorkbench(TestElement item) {
+ return item instanceof org.apache.jmeter.testelement.WorkBench;
+ }
+
/**
* Add a {@link TestElement} to a {@link JMeterTreeNode}
* @param component The {@link TestElement} to be used as data for the newly created node
@@ -180,6 +184,7 @@ public void removeNodeFromParent(JMeterTreeNode node) {
}
}
+ @SuppressWarnings("JdkObsolete")
private void traverseAndFind(Class> type, JMeterTreeNode node, List nodeList) {
if (type.isInstance(node.getUserObject())) {
nodeList.add(node);
@@ -191,6 +196,7 @@ private void traverseAndFind(Class> type, JMeterTreeNode node, List enumNode = node.children();
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java
index 7b779f68efd..3990f4a1c41 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/tree/JMeterTreeTransferHandler.java
@@ -190,6 +190,7 @@ public boolean canImport(TransferHandler.TransferSupport support) {
}
@Override
+ @SuppressWarnings("JdkObsolete")
public boolean importData(TransferHandler.TransferSupport support) {
if (!canImport(support)) {
return false;
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/FileListPanel.java b/src/core/src/main/java/org/apache/jmeter/gui/util/FileListPanel.java
index 919f0ff0ee3..f52a5056ff8 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/FileListPanel.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/FileListPanel.java
@@ -22,7 +22,7 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
@@ -61,7 +61,7 @@ public class FileListPanel extends JPanel implements ActionListener {
private JButton delete = new JButton(JMeterUtils.getResString("delete")); // $NON-NLS-1$
- private List listeners = new LinkedList<>();
+ private List listeners = new ArrayList<>();
private String title;
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/FilePanelEntry.java b/src/core/src/main/java/org/apache/jmeter/gui/util/FilePanelEntry.java
index 51db86736f1..842a9cb977f 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/FilePanelEntry.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/FilePanelEntry.java
@@ -19,7 +19,7 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
@@ -43,7 +43,7 @@ public class FilePanelEntry extends HorizontalPanel implements ActionListener {
private static final String ACTION_BROWSE = "browse"; //$NON-NLS-1$
- private final List listeners = new LinkedList<>();
+ private final List listeners = new ArrayList<>();
private final String[] filetypes;
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/HeaderAsPropertyRenderer.java b/src/core/src/main/java/org/apache/jmeter/gui/util/HeaderAsPropertyRenderer.java
index f36bba7121c..1f3ab5c5e6f 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/HeaderAsPropertyRenderer.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/HeaderAsPropertyRenderer.java
@@ -43,12 +43,12 @@ public HeaderAsPropertyRenderer() {
/**
* @param columnsMsgParameters ignored
- * @deprecated don't use {@code columnsMgsParameters} as they are
+ * @deprecated don't use {@code columnsMsgParameters} as they are
* not moved around when rows of the corresponding table object model
* are moved.
*/
@Deprecated
- public HeaderAsPropertyRenderer(Object[][] columnsMsgParameters) {
+ public HeaderAsPropertyRenderer(@Deprecated Object[][] columnsMsgParameters) {
super();
}
@@ -90,6 +90,7 @@ protected String getText(Object value, int row, int column) {
* @param columnsMsgParameters ignored
* @return the text
*/
+ @SuppressWarnings("deprecation")
static String getText(Object value, int row, int column, Object[][] columnsMsgParameters) {
if (value == null){
return "";
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/IconToolbarBean.java b/src/core/src/main/java/org/apache/jmeter/gui/util/IconToolbarBean.java
index 009f5aa378c..ebaf61b3876 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/IconToolbarBean.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/IconToolbarBean.java
@@ -81,7 +81,7 @@ public final class IconToolbarBean {
public String getActionNameResolve() {
final String aName;
try {
- aName = (String) (ActionNames.class.getField(this.actionName).get(null));
+ aName = (String) ActionNames.class.getField(this.actionName).get(null);
} catch (Exception e) {
log.warn("Toolbar icon Action names error: {}, use unknown action.", this.actionName); //$NON-NLS-1$
return this.actionName; // return unknown action names for display error msg
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/JDateField.java b/src/core/src/main/java/org/apache/jmeter/gui/util/JDateField.java
index 35f6e92e8bf..813310b1a91 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/JDateField.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/JDateField.java
@@ -93,6 +93,7 @@ public JDateField(Date date) {
}
// Dummy constructor to allow JUnit tests to work
+ @SuppressWarnings("JdkObsolete")
public JDateField() {
this(new Date());
}
@@ -112,6 +113,7 @@ public void setDate(Date date) {
*
* @return The currently set date
*/
+ @SuppressWarnings("JdkObsolete")
public Date getDate() {
try {
return dateFormat.parse(getText());
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/JLabeledRadioI18N.java b/src/core/src/main/java/org/apache/jmeter/gui/util/JLabeledRadioI18N.java
index 7ce3a0e3cec..172f4d6f5c5 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/JLabeledRadioI18N.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/JLabeledRadioI18N.java
@@ -21,7 +21,6 @@
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.LinkedList;
import java.util.List;
import javax.swing.AbstractButton;
@@ -126,6 +125,7 @@ private void initButtonGroup(String[] resources, String selected) {
* @param selected initially selected resource (if not null)
*
*/
+ @SuppressWarnings("JdkObsolete")
public void resetButtons(String[] resources, String selected) {
Enumeration buttons = bGroup.getElements();
List buttonsToRemove = new ArrayList<>(this.bGroup.getButtonCount());
@@ -160,6 +160,7 @@ public String getText() {
* @param resourceName name of resource whose button is to be selected
*/
@Override
+ @SuppressWarnings("JdkObsolete")
public void setText(String resourceName) {
Enumeration en = this.bGroup.getElements();
while (en.hasMoreElements()) {
@@ -204,8 +205,9 @@ private void notifyChangeListeners() {
* excluded from the list.
*/
@Override
+ @SuppressWarnings("JdkObsolete")
public List getComponentList() {
- List comps = new LinkedList<>();
+ List comps = new ArrayList<>();
comps.add(mLabel);
Enumeration en = this.bGroup.getElements();
while (en.hasMoreElements()) {
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java b/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java
index 99a7106f5d4..f05d2623b5c 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java
@@ -25,7 +25,6 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
@@ -104,12 +103,12 @@ public class JMeterMenuBar extends JMenuBar implements LocaleChangeListener {
public JMeterMenuBar() {
// List for recent files menu items
- fileLoadRecentFiles = new LinkedList<>();
+ fileLoadRecentFiles = new ArrayList<>();
// Lists for remote engines menu items
- remoteEngineStart = new LinkedList<>();
- remoteEngineStop = new LinkedList<>();
- remoteEngineShut = new LinkedList<>();
- remoteEngineExit = new LinkedList<>();
+ remoteEngineStart = new ArrayList<>();
+ remoteEngineStop = new ArrayList<>();
+ remoteEngineShut = new ArrayList<>();
+ remoteEngineExit = new ArrayList<>();
remoteHosts = JOrphanUtils.split(JMeterUtils.getPropDefault("remote_hosts", ""), ","); //$NON-NLS-1$
if (remoteHosts.length == 1 && remoteHosts[0].isEmpty()) {
remoteHosts = new String[0];
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/JSyntaxSearchToolBar.java b/src/core/src/main/java/org/apache/jmeter/gui/util/JSyntaxSearchToolBar.java
index adcc3b27e7e..4121819a5f3 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/JSyntaxSearchToolBar.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/JSyntaxSearchToolBar.java
@@ -104,7 +104,7 @@ public void actionPerformed(ActionEvent evt) {
}
}
- protected void toggleSearchField(JTextField textToFindField, boolean matchFound) {
+ void toggleSearchField(JTextField textToFindField, boolean matchFound) {
if(!matchFound) {
textToFindField.setBackground(LIGHT_RED);
textToFindField.setForeground(Color.WHITE);
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/MenuFactory.java b/src/core/src/main/java/org/apache/jmeter/gui/util/MenuFactory.java
index 939a7d77361..4aafa803415 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/MenuFactory.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/MenuFactory.java
@@ -20,12 +20,12 @@
import java.awt.Component;
import java.awt.HeadlessException;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -90,17 +90,17 @@ public final class MenuFactory {
static {
menuMap = new HashMap<>();
- menuMap.put(THREADS, new LinkedList<>());
- menuMap.put(TIMERS, new LinkedList<>());
- menuMap.put(ASSERTIONS, new LinkedList<>());
- menuMap.put(CONFIG_ELEMENTS, new LinkedList<>());
- menuMap.put(CONTROLLERS, new LinkedList<>());
- menuMap.put(LISTENERS, new LinkedList<>());
- menuMap.put(NON_TEST_ELEMENTS, new LinkedList<>());
- menuMap.put(SAMPLERS, new LinkedList<>());
- menuMap.put(POST_PROCESSORS, new LinkedList<>());
- menuMap.put(PRE_PROCESSORS, new LinkedList<>());
- menuMap.put(FRAGMENTS, new LinkedList<>());
+ menuMap.put(THREADS, new ArrayList<>());
+ menuMap.put(TIMERS, new ArrayList<>());
+ menuMap.put(ASSERTIONS, new ArrayList<>());
+ menuMap.put(CONFIG_ELEMENTS, new ArrayList<>());
+ menuMap.put(CONTROLLERS, new ArrayList<>());
+ menuMap.put(LISTENERS, new ArrayList<>());
+ menuMap.put(NON_TEST_ELEMENTS, new ArrayList<>());
+ menuMap.put(SAMPLERS, new ArrayList<>());
+ menuMap.put(POST_PROCESSORS, new ArrayList<>());
+ menuMap.put(PRE_PROCESSORS, new ArrayList<>());
+ menuMap.put(FRAGMENTS, new ArrayList<>());
menuMap.put(SEPARATOR, Collections.singletonList(new MenuSeparatorInfo()));
try {
diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/TristateCheckBox.java b/src/core/src/main/java/org/apache/jmeter/gui/util/TristateCheckBox.java
index df27755bf64..5b613df095c 100644
--- a/src/core/src/main/java/org/apache/jmeter/gui/util/TristateCheckBox.java
+++ b/src/core/src/main/java/org/apache/jmeter/gui/util/TristateCheckBox.java
@@ -166,6 +166,7 @@ public synchronized void addMouseListener(MouseListener l) {
}
// Mostly delegates to model
+ @SuppressWarnings("deprecation")
private void iterateState() {
//Maybe do nothing at all?
if (!getModel().isEnabled()) {
diff --git a/src/core/src/main/java/org/apache/jmeter/report/config/ConfigurationUtils.java b/src/core/src/main/java/org/apache/jmeter/report/config/ConfigurationUtils.java
index b1cdc9c8276..5e7370995f1 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/config/ConfigurationUtils.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/config/ConfigurationUtils.java
@@ -28,8 +28,6 @@
*/
public class ConfigurationUtils {
- private static final String NOT_SUPPORTED_CONVERSION_FMT = "Convert \"%s\" to \"%s\" is not supported";
-
/**
* Instantiates a new configuration utils.
*/
@@ -55,7 +53,7 @@ public static TProperty convert(String value,
return Converters.convert(clazz, value);
} catch (ConvertException ex) {
throw new ConfigurationException(String.format(
- NOT_SUPPORTED_CONVERSION_FMT, value, clazz.getName()));
+ "Convert \"%s\" to \"%s\" is not supported", value, clazz.getName()));
}
}
}
diff --git a/src/core/src/main/java/org/apache/jmeter/report/core/SampleMetadata.java b/src/core/src/main/java/org/apache/jmeter/report/core/SampleMetadata.java
index 7afe8dbe733..9fed643602d 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/core/SampleMetadata.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/core/SampleMetadata.java
@@ -38,9 +38,6 @@
*/
public class SampleMetadata {
- private static final String METADATA_EXCEPTION_MSG_FMT = "No column <%s> found in sample metadata <%s>,"
- + " check #jmeter.save.saveservice.* properties to add the missing column";
-
/** The column list : accessed by CSVSampleWriter */
List columns;
@@ -216,7 +213,8 @@ public int ensureIndexOf(String col) {
int index = indexOf(col);
if (index < 0) {
throw new SampleException(
- String.format(METADATA_EXCEPTION_MSG_FMT, col, toString()));
+ String.format("No column <%s> found in sample metadata <%s>,"
+ + " check #jmeter.save.saveservice.* properties to add the missing column", col, toString()));
}
return index;
}
diff --git a/src/core/src/main/java/org/apache/jmeter/report/core/TimeHelper.java b/src/core/src/main/java/org/apache/jmeter/report/core/TimeHelper.java
index 6a298b61b76..b490b48dea6 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/core/TimeHelper.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/core/TimeHelper.java
@@ -76,6 +76,7 @@ public static String formatTimeStamp(long timeStamp) {
* the format
* @return the string
*/
+ @SuppressWarnings("JdkObsolete")
public static String formatTimeStamp(long timeStamp, String format) {
SimpleDateFormat dateFormat = format != null ? new SimpleDateFormat(
format) : new SimpleDateFormat();
diff --git a/src/core/src/main/java/org/apache/jmeter/report/dashboard/AbstractDataExporter.java b/src/core/src/main/java/org/apache/jmeter/report/dashboard/AbstractDataExporter.java
index bbe1fdda992..d0f159a6a2a 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/dashboard/AbstractDataExporter.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/dashboard/AbstractDataExporter.java
@@ -28,7 +28,6 @@
* The Class AbstractDataExporter provides a base class for DataExporter.
*/
public abstract class AbstractDataExporter implements DataExporter {
- private static final String INVALID_PROPERTY_CONFIG_FMT = "Wrong property \"%s\" in \"%s\" export configuration";
private String name;
@@ -124,7 +123,7 @@ protected T getPropertyFromConfig(
try {
return cfg.getProperty(property, defaultValue, clazz);
} catch (ConfigurationException ex) {
- throw new ExportException(String.format(INVALID_PROPERTY_CONFIG_FMT,
+ throw new ExportException(String.format("Wrong property \"%s\" in \"%s\" export configuration",
property, getName()), ex);
}
}
diff --git a/src/core/src/main/java/org/apache/jmeter/report/dashboard/HtmlTemplateExporter.java b/src/core/src/main/java/org/apache/jmeter/report/dashboard/HtmlTemplateExporter.java
index b4a9a5f1482..a886d744d24 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/dashboard/HtmlTemplateExporter.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/dashboard/HtmlTemplateExporter.java
@@ -80,7 +80,6 @@ public class HtmlTemplateExporter extends AbstractDataExporter {
public static final String DATA_CTX_FILTERS_ONLY_SAMPLE_SERIES = "filtersOnlySampleSeries";
public static final String TIMESTAMP_FORMAT_MS = "ms";
- private static final String INVALID_TEMPLATE_DIRECTORY_FMT = "\"%s\" is not a valid template directory";
// Template directory
private static final String TEMPLATE_DIR = "template_dir";
@@ -311,7 +310,7 @@ public void export(SampleContext context, File file,
File.class);
if (!templateDirectory.isDirectory()) {
String message = String.format(
- INVALID_TEMPLATE_DIRECTORY_FMT,
+ "\"%s\" is not a valid template directory",
templateDirectory.getAbsolutePath());
log.error(message);
throw new ExportException(message);
diff --git a/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java b/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java
index 8fffcec9713..f8bb25b7425 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/dashboard/JsonExporter.java
@@ -19,8 +19,9 @@
import java.io.File;
import java.io.FileFilter;
-import java.io.FileWriter;
import java.io.IOException;
+import java.io.Writer;
+import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
@@ -51,6 +52,7 @@ public class JsonExporter extends AbstractDataExporter {
public static final String OUTPUT_FILENAME = "statistics.json";
private static final FileFilter JSON_FILE_FILTER =
file -> file.isFile() && file.getName().equals(OUTPUT_FILENAME);
+ private final static ObjectWriter OBJECT_WRITER = new ObjectMapper().writerWithDefaultPrettyPrinter();
public JsonExporter() {
@@ -78,9 +80,8 @@ public void export(SampleContext context, File file, ReportGeneratorConfiguratio
File outputFile = new File(outputDir, OUTPUT_FILENAME);
LOGGER.info("Writing statistics JSON to {}", outputFile);
- ObjectWriter objectWriter = new ObjectMapper().writerWithDefaultPrettyPrinter();
- try (FileWriter fileWriter = new FileWriter(outputFile)) {
- objectWriter.writeValue(fileWriter, statistics);
+ try (Writer fileWriter = Files.newBufferedWriter(outputFile.toPath())) {
+ OBJECT_WRITER.writeValue(fileWriter, statistics);
} catch (IOException e) {
throw new ExportException("Error generating JSON statistics file to " + outputFile +" for "+statistics, e);
}
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 70bda7235d4..f66cf7b3be0 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
@@ -85,8 +85,6 @@ public class ReportGenerator {
.charAt(0);
private static final String INVALID_CLASS_FMT = "Class name \"%s\" is not valid.";
- private static final String INVALID_EXPORT_FMT = "Data exporter \"%s\" is unable to export data.";
- private static final String NOT_SUPPORTED_CONVERSION_FMT = "Not supported conversion to \"%s\"";
public static final String NORMALIZER_CONSUMER_NAME = "normalizer";
public static final String BEGIN_DATE_CONSUMER_NAME = "beginDate";
@@ -175,6 +173,7 @@ private static Properties loadProps(File file) {
* @param propertyKey the property key
* @return the name of the property setter
*/
+ @SuppressWarnings("JdkObsolete")
private static String getSetterName(String propertyKey) {
Matcher matcher = POTENTIAL_CAMEL_CASE_PATTERN.matcher(propertyKey);
StringBuffer buffer = new StringBuffer(); // NOSONAR Unfortunately Matcher does not support StringBuilder
@@ -268,6 +267,7 @@ public void generate() throws GenerationException {
/**
* @return {@link FilterConsumer} that filter data based on date range
*/
+ @SuppressWarnings("JdkObsolete")
private FilterConsumer createFilterByDateRange() {
FilterConsumer dateRangeFilter = new FilterConsumer();
dateRangeFilter.setName(DATE_RANGE_FILTER_CONSUMER_NAME);
@@ -381,7 +381,7 @@ private void exportData(SampleContext sampleContext, String exporterName,
String error = String.format(INVALID_CLASS_FMT, className);
throw new GenerationException(error, ex);
} catch (ExportException ex) {
- String error = String.format(INVALID_EXPORT_FMT, exporterName);
+ String error = String.format("Data exporter \"%s\" is unable to export data.", exporterName);
throw new GenerationException(error, ex);
}
}
@@ -533,7 +533,7 @@ private void setProperty(String className, Object obj, Method[] methods,
if (converter == null) {
throw new GenerationException(
String.format(
- NOT_SUPPORTED_CONVERSION_FMT,
+ "Not supported conversion to \"%s\"",
parameterType.getName()));
}
method.invoke(obj, converter.convert(propertyValue));
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/ExternalSampleSorter.java b/src/core/src/main/java/org/apache/jmeter/report/processor/ExternalSampleSorter.java
index bc21387fa24..bf3a9eeb2eb 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/ExternalSampleSorter.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/ExternalSampleSorter.java
@@ -20,7 +20,6 @@
import java.io.File;
import java.text.DecimalFormat;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.concurrent.BlockingQueue;
@@ -102,9 +101,9 @@ public class ExternalSampleSorter extends AbstractSampleConsumer {
private final AtomicLong inputSampleCount = new AtomicLong();
- private LinkedList chunks;
+ private List chunks;
- private LinkedList samples;
+ private List samples;
private SampleMetadata sampleMetadata;
@@ -281,8 +280,8 @@ public void startConsuming() {
this.pool.prestartAllCoreThreads();
inputSampleCount.set(0);
chunkedSampleCount.set(0);
- chunks = new LinkedList<>();
- samples = new LinkedList<>();
+ chunks = new ArrayList<>();
+ samples = new ArrayList<>();
sampleMetadata = getConsumedMetadata(0);
sampleComparator.initialize(sampleMetadata);
}
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/MapResultData.java b/src/core/src/main/java/org/apache/jmeter/report/processor/MapResultData.java
index 65135805373..87c306e9e54 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/MapResultData.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/MapResultData.java
@@ -19,7 +19,6 @@
import java.util.HashMap;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
/**
@@ -49,7 +48,7 @@ public T accept(ResultDataVisitor visitor) {
*
* @return the sets of entries of the map
*/
- public Set> entrySet() {
+ public Set> entrySet() {
return map.entrySet();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/NormalizerSampleConsumer.java b/src/core/src/main/java/org/apache/jmeter/report/processor/NormalizerSampleConsumer.java
index c5f3fff5a12..7834af8f4e5 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/NormalizerSampleConsumer.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/NormalizerSampleConsumer.java
@@ -44,9 +44,6 @@ public class NormalizerSampleConsumer extends AbstractSampleConsumer {
"jmeter.save.saveservice.timestamp_format", // $NON-NLS-1$
SampleSaveConfiguration.MILLISECONDS);
- private static final String PARSE_TIMESTAMP_EXCEPTION_MESSAGE =
- "Could not parse timeStamp <%s> using format defined by property jmeter.save.saveservice.timestamp_format=%s on sample %s ";
-
/**
* index of the timeStamp column
*/
@@ -92,6 +89,7 @@ private SimpleDateFormat createFormatter() {
}
@Override
+ @SuppressWarnings("JdkObsolete")
public void consume(Sample s, int channel) {
Date date = null;
try {
@@ -103,7 +101,9 @@ public void consume(Sample s, int channel) {
}
} catch (Exception e) {
throw new SampleException(String.format(
- PARSE_TIMESTAMP_EXCEPTION_MESSAGE, s.getData(timestamp),
+ "Could not parse timeStamp <%s> using format defined by property" +
+ " jmeter.save.saveservice.timestamp_format=%s on sample %s ",
+ s.getData(timestamp),
TIMESTAMP_FORMAT, s.toString()), e);
}
long time = date.getTime();
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java
index 2e0f145dfe2..2708e73a11a 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java
@@ -237,7 +237,8 @@ private void setMaxResult(MapResultData result, String name, Double value) {
* @param seriesData
* @param aggregated
*/
- private void addKeyData(MapResultData result, String group, String series,
+ private void addKeyData(MapResultData result, @SuppressWarnings("unused") String group,
+ String series,
SeriesData seriesData, boolean aggregated) {
// Override series name when aggregated
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphValueSelector.java b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphValueSelector.java
index 7986ef413ed..aa7e6a5cc58 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphValueSelector.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/AbstractGraphValueSelector.java
@@ -30,7 +30,7 @@ abstract class AbstractGraphValueSelector implements GraphValueSelector {
*
* @param ignoreTransactionController boolean ignore {@link SampleResult} generated by {@link TransactionController}
*/
- public AbstractGraphValueSelector(boolean ignoreTransactionController) {
+ protected AbstractGraphValueSelector(boolean ignoreTransactionController) {
super();
this.ignoreTransactionController = ignoreTransactionController;
}
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java
index 425a5473eb0..21a8bb27b82 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java
@@ -17,7 +17,7 @@
package org.apache.jmeter.report.processor.graph;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import org.apache.jmeter.report.core.Sample;
@@ -31,7 +31,7 @@
public class IndexedNameSelector implements GraphKeysSelector {
/** The names. */
- private LinkedList names = new LinkedList<>();
+ private final List names = new ArrayList<>();
/**
* Gets the names.
@@ -54,7 +54,7 @@ public Double select(Sample sample) {
String name = sample.getName();
int index = names.indexOf(name);
if (index < 0) {
- names.addLast(name);
+ names.add(name);
index = names.size() - 1;
}
return (double) index;
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java
index 498b487113f..b16643671ba 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java
@@ -41,8 +41,6 @@
*/
public class ResponseTimePerSampleGraphConsumer extends AbstractGraphConsumer {
- private static final String RESPONSE_TIME_PER_SAMPLE_SERIES_FORMAT = "%dth percentile";
-
/**
* Instantiates a new response time per sample graph consumer.
*/
@@ -80,7 +78,7 @@ private GroupInfo createGroupInfo(String propertyKey, int defaultValue) {
factory.setPercentileIndex(property);
StaticSeriesSelector seriesSelector = new StaticSeriesSelector();
seriesSelector.setSeriesName(String.format(
- RESPONSE_TIME_PER_SAMPLE_SERIES_FORMAT, property));
+ "%dth percentile", property));
return new GroupInfo(factory, seriesSelector,
// We include Transaction Controller results
diff --git a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePercentilesOverTimeGraphConsumer.java b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePercentilesOverTimeGraphConsumer.java
index 7c636b69d66..e0d575e7ddb 100644
--- a/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePercentilesOverTimeGraphConsumer.java
+++ b/src/core/src/main/java/org/apache/jmeter/report/processor/graph/impl/ResponseTimePercentilesOverTimeGraphConsumer.java
@@ -50,8 +50,6 @@ public class ResponseTimePercentilesOverTimeGraphConsumer
private static final String PCT3_LABEL = JMeterUtils.getPropDefault(
"aggregate_rpt_pct3", "99");
- private static final String PERCENTILE_FORMAT = "%sth percentile";
-
@Override
protected TimeStampKeysSelector createTimeStampKeysSelector() {
TimeStampKeysSelector keysSelector = new TimeStampKeysSelector();
@@ -77,7 +75,7 @@ protected Map createGroupInfos() {
}
private String formatPercentile(String percentileLabel) {
- return String.format(PERCENTILE_FORMAT, percentileLabel);
+ return String.format("%sth percentile", percentileLabel);
}
private GroupInfo createMinGroupInfo() {
diff --git a/src/core/src/main/java/org/apache/jmeter/reporters/AbstractListenerElement.java b/src/core/src/main/java/org/apache/jmeter/reporters/AbstractListenerElement.java
index fe27dd39e3f..c364cf18c43 100644
--- a/src/core/src/main/java/org/apache/jmeter/reporters/AbstractListenerElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/reporters/AbstractListenerElement.java
@@ -32,7 +32,7 @@ public abstract class AbstractListenerElement extends AbstractTestElement {
// TODO should class implement SampleListener?
private transient WeakReference listener;
- public AbstractListenerElement() {
+ protected AbstractListenerElement() {
}
protected final Visualizer getVisualizer() {
diff --git a/src/core/src/main/java/org/apache/jmeter/reporters/ResultCollector.java b/src/core/src/main/java/org/apache/jmeter/reporters/ResultCollector.java
index 7326c87f8ae..0138e1c2528 100644
--- a/src/core/src/main/java/org/apache/jmeter/reporters/ResultCollector.java
+++ b/src/core/src/main/java/org/apache/jmeter/reporters/ResultCollector.java
@@ -21,16 +21,16 @@
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
-import java.io.FileReader;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.Serializable;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
@@ -368,8 +368,7 @@ public void loadExistingFile() {
String filename = getFilename();
File file = new File(filename);
if (file.exists()) {
- try ( FileReader fr = new FileReader(file);
- BufferedReader dataReader = new BufferedReader(fr, 300)){
+ try (BufferedReader dataReader = Files.newBufferedReader(file.toPath())){
// Get the first line, and see if it is XML
String line = dataReader.readLine();
dataReader.close();
@@ -380,8 +379,8 @@ public void loadExistingFile() {
CSVSaveService.processSamples(filename, visualizer, this);
parsedOK = true;
} else { // We are processing XML
- try ( FileInputStream fis = new FileInputStream(file);
- BufferedInputStream bufferedInputStream = new BufferedInputStream(fis); ){ // Assume XStream
+ try (InputStream fis = Files.newInputStream(file.toPath());
+ BufferedInputStream bufferedInputStream = new BufferedInputStream(fis); ){ // Assume XStream
SaveService.loadTestResults(bufferedInputStream,
new ResultCollectorHelper(this, visualizer));
parsedOK = true;
diff --git a/src/core/src/main/java/org/apache/jmeter/reporters/ResultSaver.java b/src/core/src/main/java/org/apache/jmeter/reporters/ResultSaver.java
index 55191f52297..b1f0c55977c 100644
--- a/src/core/src/main/java/org/apache/jmeter/reporters/ResultSaver.java
+++ b/src/core/src/main/java/org/apache/jmeter/reporters/ResultSaver.java
@@ -123,6 +123,7 @@ public void testStarted() {
}
@Override
+ @SuppressWarnings("JdkObsolete")
public void testStarted(String host) {
synchronized(LOCK){
sequenceNumber = 0;
diff --git a/src/core/src/main/java/org/apache/jmeter/reporters/Summariser.java b/src/core/src/main/java/org/apache/jmeter/reporters/Summariser.java
index 4b68eb97e04..8b4ebe2e15d 100644
--- a/src/core/src/main/java/org/apache/jmeter/reporters/Summariser.java
+++ b/src/core/src/main/java/org/apache/jmeter/reporters/Summariser.java
@@ -20,7 +20,6 @@
import java.io.Serializable;
import java.text.DecimalFormat;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -122,8 +121,9 @@ public class Summariser extends AbstractTestElement
* Called several times during test startup.
* The name will not necessarily have been set at this point.
*/
+ @SuppressWarnings("StaticAssignmentInConstructor")
public Summariser() {
- super();
+ // TODO: is it needed to reset static field instanceCount in the instance constructor?
synchronized (LOCK) {
ACCUMULATORS.clear();
instanceCount=0;
@@ -295,7 +295,7 @@ public void testStarted(String host) {
*/
@Override
public void testEnded(String host) {
- Set> totals = null;
+ Set> totals = null;
synchronized (LOCK) {
instanceCount--;
if (instanceCount <= 0){
diff --git a/src/core/src/main/java/org/apache/jmeter/samplers/AbstractSampleSender.java b/src/core/src/main/java/org/apache/jmeter/samplers/AbstractSampleSender.java
index dadf186c6ca..ccc0ecf64e3 100644
--- a/src/core/src/main/java/org/apache/jmeter/samplers/AbstractSampleSender.java
+++ b/src/core/src/main/java/org/apache/jmeter/samplers/AbstractSampleSender.java
@@ -41,7 +41,7 @@ public boolean isClientConfigured() {
/**
*
*/
- public AbstractSampleSender() {
+ protected AbstractSampleSender() {
super();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/samplers/DiskStoreSampleSender.java b/src/core/src/main/java/org/apache/jmeter/samplers/DiskStoreSampleSender.java
index 537c3489997..eec4da61312 100644
--- a/src/core/src/main/java/org/apache/jmeter/samplers/DiskStoreSampleSender.java
+++ b/src/core/src/main/java/org/apache/jmeter/samplers/DiskStoreSampleSender.java
@@ -67,6 +67,7 @@ public DiskStoreSampleSender(){
}
@Override
+ @SuppressWarnings("FutureReturnValueIgnored")
public void testEnded(String host) {
log.info("Test Ended on {}", host);
singleExecutor.submit(() -> {
@@ -121,6 +122,7 @@ public void testEnded(String host) {
}
@Override
+ @SuppressWarnings("FutureReturnValueIgnored")
public void sampleOccurred(final SampleEvent e) {
// sampleOccurred is called from multiple threads; not safe to write from multiple threads.
// also decouples the file IO from sample generation
@@ -141,6 +143,7 @@ public void sampleOccurred(final SampleEvent e) {
* never
*/
// TODO should errors be thrown back through RMI?
+ @SuppressWarnings("FutureReturnValueIgnored")
private Object readResolve() throws ObjectStreamException{
log.info("Using DiskStoreSampleSender for this test run"); // server log file
singleExecutor = Executors.newSingleThreadExecutor();
diff --git a/src/core/src/main/java/org/apache/jmeter/samplers/Entry.java b/src/core/src/main/java/org/apache/jmeter/samplers/Entry.java
index 7e1fbd16b64..67de578e4ec 100644
--- a/src/core/src/main/java/org/apache/jmeter/samplers/Entry.java
+++ b/src/core/src/main/java/org/apache/jmeter/samplers/Entry.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.samplers;
+import java.util.ArrayList;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -36,7 +36,7 @@ public class Entry {
public Entry() {
configSet = new HashMap<>();
- assertions = new LinkedList<>();
+ assertions = new ArrayList<>();
}
public void addAssertion(Assertion assertion) {
diff --git a/src/core/src/main/java/org/apache/jmeter/save/CSVSaveService.java b/src/core/src/main/java/org/apache/jmeter/save/CSVSaveService.java
index e34d773b832..2f21dc56e1a 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/CSVSaveService.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/CSVSaveService.java
@@ -191,6 +191,7 @@ public static void processSamples(String filename, Visualizer visualizer,
*
* @throws JMeterError
*/
+ @SuppressWarnings("JdkObsolete")
private static SampleEvent makeResultFromDelimitedString(
final String[] parts,
final SampleSaveConfiguration saveConfig, // may be updated
@@ -249,7 +250,9 @@ private static SampleEvent makeResultFromDelimitedString(
}
if (saveConfig.saveSampleCount()) {
- result = new StatisticalSampleResult(timeStamp, elapsed);
+ @SuppressWarnings("deprecation")
+ StatisticalSampleResult sampleResult = new StatisticalSampleResult(timeStamp, elapsed);
+ result = sampleResult;
} else {
result = new SampleResult(timeStamp, elapsed);
}
@@ -807,6 +810,7 @@ public static String resultToDelimitedString(SampleEvent event,
* the separation string
* @return the separated value representation of the result
*/
+ @SuppressWarnings("JdkObsolete")
public static String resultToDelimitedString(SampleEvent event,
SampleResult sample,
SampleSaveConfiguration saveConfig,
diff --git a/src/core/src/main/java/org/apache/jmeter/save/SaveService.java b/src/core/src/main/java/org/apache/jmeter/save/SaveService.java
index 2955c38cba8..3dad44fd7c3 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/SaveService.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/SaveService.java
@@ -280,10 +280,11 @@ private static void registerConverter(String key, XStream jmxsaver, boolean useM
throws InstantiationException, IllegalAccessException,
InvocationTargetException, NoSuchMethodException,
ClassNotFoundException {
+ final Class extends Converter> clazz = Class.forName(key).asSubclass(Converter.class);
if (useMapper){
- jmxsaver.registerConverter((Converter) Class.forName(key).getConstructor(Mapper.class).newInstance(jmxsaver.getMapper()));
+ jmxsaver.registerConverter(clazz.getConstructor(Mapper.class).newInstance(jmxsaver.getMapper()));
} else {
- jmxsaver.registerConverter((Converter) Class.forName(key).getDeclaredConstructor().newInstance());
+ jmxsaver.registerConverter(clazz.getDeclaredConstructor().newInstance());
}
}
diff --git a/src/core/src/main/java/org/apache/jmeter/save/converters/HashTreeConverter.java b/src/core/src/main/java/org/apache/jmeter/save/converters/HashTreeConverter.java
index a4cec2ba772..3305570b14c 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/converters/HashTreeConverter.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/converters/HashTreeConverter.java
@@ -49,8 +49,8 @@ public boolean canConvert(@SuppressWarnings("rawtypes") Class arg0) { // supercl
public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingContext context) {
HashTree tree = (HashTree) arg0;
for (Object item : tree.list()) {
- writeItem(item, context, writer);
- writeItem(tree.getTree(item), context, writer);
+ writeCompleteItem(item, context, writer);
+ writeCompleteItem(tree.getTree(item), context, writer);
}
}
@@ -63,7 +63,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
HashTree tree = (HashTree) createCollection(context.getRequiredType());
while (reader.hasMoreChildren()) {
reader.moveDown();
- Object item = readItem(reader, context, tree);
+ Object item = readBareItem(reader, context, tree);
if (isKey) {
tree.add(item);
current = item;
diff --git a/src/core/src/main/java/org/apache/jmeter/save/converters/MultiPropertyConverter.java b/src/core/src/main/java/org/apache/jmeter/save/converters/MultiPropertyConverter.java
index c0429990055..64988c6f316 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/converters/MultiPropertyConverter.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/converters/MultiPropertyConverter.java
@@ -54,7 +54,7 @@ public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingCon
writer.addAttribute(ConversionHelp.ATT_NAME, ConversionHelp.encode(prop.getName()));
for (JMeterProperty jMeterProperty : prop) {
- writeItem(jMeterProperty, context, writer);
+ writeCompleteItem(jMeterProperty, context, writer);
}
}
@@ -65,7 +65,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
prop.setName(ConversionHelp.decode(reader.getAttribute(ConversionHelp.ATT_NAME)));
while (reader.hasMoreChildren()) {
reader.moveDown();
- JMeterProperty subProp = (JMeterProperty) readItem(reader, context, prop);
+ JMeterProperty subProp = (JMeterProperty) readBareItem(reader, context, prop);
if (subProp != null) { // could be null if it has been deleted via NameUpdater
prop.addProperty(subProp);
}
diff --git a/src/core/src/main/java/org/apache/jmeter/save/converters/SampleResultConverter.java b/src/core/src/main/java/org/apache/jmeter/save/converters/SampleResultConverter.java
index 7e95c355d0e..49cbb093b5b 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/converters/SampleResultConverter.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/converters/SampleResultConverter.java
@@ -141,7 +141,7 @@ protected void saveSamplerData(HierarchicalStreamWriter writer, MarshallingConte
if (save.saveUrl()) {
final URL url = res.getURL();
if (url != null) {
- writeItem(url, context, writer);
+ writeCompleteItem(url, context, writer);
}
}
}
@@ -239,7 +239,7 @@ protected void saveSubResults(HierarchicalStreamWriter writer, MarshallingContex
SampleResult[] subResults = res.getSubResults();
for (SampleResult subResult : subResults) {
subResult.setSaveConfig(save);
- writeItem(subResult, context, writer);
+ writeCompleteItem(subResult, context, writer);
}
}
}
@@ -261,7 +261,7 @@ protected void saveAssertions(HierarchicalStreamWriter writer, MarshallingContex
if (save.saveAssertions()) {
AssertionResult[] assertionResults = res.getAssertionResults();
for (AssertionResult assertionResult : assertionResults) {
- writeItem(assertionResult, context, writer);
+ writeCompleteItem(assertionResult, context, writer);
}
}
}
@@ -368,7 +368,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
retrieveAttributes(reader, context, res);
while (reader.hasMoreChildren()) {
reader.moveDown();
- Object subItem = readItem(reader, context, res);
+ Object subItem = readBareItem(reader, context, res);
retrieveItem(reader, context, res, subItem);
reader.moveUp();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementConverter.java b/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementConverter.java
index 7ccab4ba4a7..f477b323d9c 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementConverter.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementConverter.java
@@ -70,7 +70,7 @@ public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingCon
&& !el.getClass().equals(TestPlan.class)
))
{
- writeItem(jmp, context, writer);
+ writeCompleteItem(jmp, context, writer);
}
}
}
@@ -102,7 +102,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
el.setProperty(TestElement.TEST_CLASS, targetName);
while (reader.hasMoreChildren()) {
reader.moveDown();
- JMeterProperty prop = (JMeterProperty) readItem(reader, context, el);
+ JMeterProperty prop = (JMeterProperty) readBareItem(reader, context, el);
if (prop != null) { // could be null if it has been deleted via NameUpdater
el.setProperty(prop);
}
diff --git a/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementPropertyConverter.java b/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementPropertyConverter.java
index 2cd43fd0a6d..50bfbff5876 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementPropertyConverter.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/converters/TestElementPropertyConverter.java
@@ -71,7 +71,7 @@ public void marshal(Object arg0, HierarchicalStreamWriter writer, MarshallingCon
if (!(TestElement.COMMENTS.equals(jmp.getName())
&& jmp.getStringValue().isEmpty()))
{
- writeItem(jmp, context, writer);
+ writeCompleteItem(jmp, context, writer);
}
}
}
@@ -106,7 +106,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
ConversionHelp.restoreSpecialProperties(te, reader);
while (reader.hasMoreChildren()) {
reader.moveDown();
- JMeterProperty subProp = (JMeterProperty) readItem(reader, context, prop);
+ JMeterProperty subProp = (JMeterProperty) readBareItem(reader, context, prop);
if (subProp != null) { // could be null if it has been deleted via NameUpdater
if (isHeader) {
String name = subProp.getName();
diff --git a/src/core/src/main/java/org/apache/jmeter/save/converters/TestResultWrapperConverter.java b/src/core/src/main/java/org/apache/jmeter/save/converters/TestResultWrapperConverter.java
index 42eb44b1d92..419457260d5 100644
--- a/src/core/src/main/java/org/apache/jmeter/save/converters/TestResultWrapperConverter.java
+++ b/src/core/src/main/java/org/apache/jmeter/save/converters/TestResultWrapperConverter.java
@@ -91,7 +91,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co
final ResultCollectorHelper resultCollectorHelper = (ResultCollectorHelper) context.get(SaveService.RESULTCOLLECTOR_HELPER_OBJECT);
while (reader.hasMoreChildren()) {
reader.moveDown();
- SampleResult sample = (SampleResult) readItem(reader, context, results);
+ SampleResult sample = (SampleResult) readBareItem(reader, context, results);
if (resultCollectorHelper != null) {
resultCollectorHelper.add(sample);
} else {
diff --git a/src/core/src/main/java/org/apache/jmeter/services/FileServer.java b/src/core/src/main/java/org/apache/jmeter/services/FileServer.java
index 534cdac7f26..dfa6e00690b 100644
--- a/src/core/src/main/java/org/apache/jmeter/services/FileServer.java
+++ b/src/core/src/main/java/org/apache/jmeter/services/FileServer.java
@@ -22,13 +22,13 @@
import java.io.Closeable;
import java.io.EOFException;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
+import java.nio.file.Files;
import java.util.ArrayDeque;
import java.util.HashMap;
import java.util.Map;
@@ -423,7 +423,7 @@ private BufferedReader createBufferedReader(FileEntry fileEntry) throws IOExcept
if (!fileEntry.file.canRead() || !fileEntry.file.isFile()) {
throw new IllegalArgumentException("File "+ fileEntry.file.getName()+ " must exist and be readable");
}
- BOMInputStream fis = new BOMInputStream(new FileInputStream(fileEntry.file)); //NOSONAR
+ BOMInputStream fis = new BOMInputStream(Files.newInputStream(fileEntry.file.toPath())); //NOSONAR
InputStreamReader isr = null;
// If file encoding is specified, read using that encoding, otherwise use default platform encoding
String charsetName = fileEntry.charSetEncoding;
@@ -432,7 +432,9 @@ private BufferedReader createBufferedReader(FileEntry fileEntry) throws IOExcept
} else if (fis.hasBOM()) {
isr = new InputStreamReader(fis, fis.getBOM().getCharsetName());
} else {
- isr = new InputStreamReader(fis);
+ @SuppressWarnings("DefaultCharset")
+ final InputStreamReader withPlatformEncoding = new InputStreamReader(fis);
+ isr = withPlatformEncoding;
}
return new BufferedReader(isr);
}
@@ -454,14 +456,16 @@ public synchronized void write(String filename, String value) throws IOException
}
private BufferedWriter createBufferedWriter(FileEntry fileEntry) throws IOException {
- FileOutputStream fos = new FileOutputStream(fileEntry.file);
+ OutputStream fos = Files.newOutputStream(fileEntry.file.toPath());
OutputStreamWriter osw;
// If file encoding is specified, write using that encoding, otherwise use default platform encoding
String charsetName = fileEntry.charSetEncoding;
if(!JOrphanUtils.isBlank(charsetName)) {
osw = new OutputStreamWriter(fos, charsetName);
} else {
- osw = new OutputStreamWriter(fos);
+ @SuppressWarnings("DefaultCharset")
+ final OutputStreamWriter withPlatformEncoding = new OutputStreamWriter(fos);
+ osw = withPlatformEncoding;
}
return new BufferedWriter(osw);
}
diff --git a/src/core/src/main/java/org/apache/jmeter/testbeans/TestBeanHelper.java b/src/core/src/main/java/org/apache/jmeter/testbeans/TestBeanHelper.java
index 5eaa40e07c4..fa19b19d8cb 100644
--- a/src/core/src/main/java/org/apache/jmeter/testbeans/TestBeanHelper.java
+++ b/src/core/src/main/java/org/apache/jmeter/testbeans/TestBeanHelper.java
@@ -23,8 +23,8 @@
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import org.apache.jmeter.testbeans.gui.GenericTestBeanCustomizer;
import org.apache.jmeter.testbeans.gui.TableEditor;
@@ -135,7 +135,7 @@ private static Object unwrapCollection(MultiProperty prop, String type)
{
if(prop instanceof CollectionProperty)
{
- Collection values = new LinkedList<>();
+ Collection values = new ArrayList<>();
for (JMeterProperty jMeterProperty : prop) {
try {
values.add(unwrapProperty(null, jMeterProperty, Class.forName(type)));
diff --git a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
index b3c647b007b..25ee55cfb53 100644
--- a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
+++ b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
@@ -316,6 +316,7 @@ public GenericTestBeanCustomizer(){
* @param pd the descriptor
* @param pe the propertyEditor
*/
+ @SuppressWarnings("JdkObsolete")
private static void validateAttributes(PropertyDescriptor pd, PropertyEditor pe) {
final Object deflt = pd.getValue(DEFAULT);
if (deflt == null) {
diff --git a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TableEditor.java b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TableEditor.java
index e7448446934..ab6a8a45790 100644
--- a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TableEditor.java
+++ b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TableEditor.java
@@ -27,9 +27,9 @@
import java.beans.PropertyDescriptor;
import java.beans.PropertyEditorSupport;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
@@ -177,7 +177,7 @@ public void setValue(Object value) {
}
private Collection convertCollection(Collection> values) {
- List l = new LinkedList<>();
+ List l = new ArrayList<>();
for(Object obj : values) {
if(obj instanceof TestElementProperty) {
l.add(((TestElementProperty)obj).getElement());
diff --git a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java
index 6e0d8952ec1..f840335b2a2 100644
--- a/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java
+++ b/src/core/src/main/java/org/apache/jmeter/testbeans/gui/TestBeanGUI.java
@@ -30,7 +30,6 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -125,7 +124,7 @@ public class TestBeanGUI extends AbstractJMeterGuiComponent implements JMeterGUI
private List menuCategories;
static {
- List paths = new LinkedList<>();
+ List paths = new ArrayList<>();
paths.add("org.apache.jmeter.testbeans.gui");// $NON-NLS-1$
paths.addAll(Arrays.asList(PropertyEditorManager.getEditorSearchPath()));
String s = JMeterUtils.getPropDefault("propertyEditorSearchPath", null);// $NON-NLS-1$
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java b/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
index 6db4effcaee..94364f26b9b 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/AbstractTestElement.java
@@ -604,7 +604,7 @@ public void setThreadName(String inthreadName) {
this.threadName = inthreadName;
}
- public AbstractTestElement() {
+ protected AbstractTestElement() {
super();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/TestElement.java b/src/core/src/main/java/org/apache/jmeter/testelement/TestElement.java
index 2922d4f92b1..e103c1ba69d 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/TestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/TestElement.java
@@ -288,13 +288,14 @@ public interface TestElement extends Cloneable {
void setThreadContext(JMeterContext threadContext);
/**
- * @return Returns the threadName.
+ * Returns the threadName.
+ * @return the threadName.
*/
String getThreadName();
/**
- * @param threadName
- * The threadName to set.
+ * Configures thread name.
+ * @param threadName the threadName to set.
*/
void setThreadName(String threadName);
@@ -314,12 +315,14 @@ public interface TestElement extends Cloneable {
String getName();
/**
+ * Returns name of this element.
* @param name
* of this element
*/
void setName(String name);
/**
+ * Returns comment associated with this element.
* @return comment associated with this element
*/
String getComment();
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/TestPlan.java b/src/core/src/main/java/org/apache/jmeter/testelement/TestPlan.java
index e6dc735624e..4688a37e6ff 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/TestPlan.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/TestPlan.java
@@ -20,7 +20,7 @@
import java.io.IOException;
import java.io.Serializable;
import java.net.MalformedURLException;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -57,7 +57,7 @@ public class TestPlan extends AbstractTestElement implements Serializable, TestS
private static final String BASEDIR = "basedir";
- private transient List threadGroups = new LinkedList<>();
+ private transient List threadGroups = new ArrayList<>();
// There's only 1 test plan, so can cache the mode here
private static volatile boolean functionalMode = false;
@@ -72,7 +72,7 @@ public TestPlan(String name) {
// create transient item
protected Object readResolve(){
- threadGroups = new LinkedList<>();
+ threadGroups = new ArrayList<>();
return this;
}
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/property/AbstractProperty.java b/src/core/src/main/java/org/apache/jmeter/testelement/property/AbstractProperty.java
index 163757be453..37fc659d817 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/property/AbstractProperty.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/property/AbstractProperty.java
@@ -34,14 +34,14 @@ public abstract class AbstractProperty implements JMeterProperty {
private transient boolean runningVersion = false;
- public AbstractProperty(String name) {
+ protected AbstractProperty(String name) {
if (name == null) {
throw new IllegalArgumentException("Name cannot be null");
}
this.name = name;
}
- public AbstractProperty() {
+ protected AbstractProperty() {
this("");
}
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/property/CollectionProperty.java b/src/core/src/main/java/org/apache/jmeter/testelement/property/CollectionProperty.java
index 53673cef070..174e430fa14 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/property/CollectionProperty.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/property/CollectionProperty.java
@@ -42,8 +42,10 @@ public CollectionProperty() {
}
@Override
+ @SuppressWarnings("UndefinedEquals")
public boolean equals(Object o) {
if (o instanceof CollectionProperty && value != null) {
+ // TODO: Collection does not have well-defined equals behavior
return value.equals(((JMeterProperty) o).getObjectValue());
}
return false;
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/property/MultiProperty.java b/src/core/src/main/java/org/apache/jmeter/testelement/property/MultiProperty.java
index a2b853b78cc..3babeed20ec 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/property/MultiProperty.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/property/MultiProperty.java
@@ -27,11 +27,11 @@
public abstract class MultiProperty extends AbstractProperty implements Iterable {
private static final long serialVersionUID = 240L;
- public MultiProperty() {
+ protected MultiProperty() {
super();
}
- public MultiProperty(String name) {
+ protected MultiProperty(String name) {
super(name);
}
diff --git a/src/core/src/main/java/org/apache/jmeter/testelement/property/NumberProperty.java b/src/core/src/main/java/org/apache/jmeter/testelement/property/NumberProperty.java
index 659c7d9fc8b..f2f4bac1dec 100644
--- a/src/core/src/main/java/org/apache/jmeter/testelement/property/NumberProperty.java
+++ b/src/core/src/main/java/org/apache/jmeter/testelement/property/NumberProperty.java
@@ -20,11 +20,11 @@
public abstract class NumberProperty extends AbstractProperty {
private static final long serialVersionUID = 240L;
- public NumberProperty() {
+ protected NumberProperty() {
super();
}
- public NumberProperty(String name) {
+ protected NumberProperty(String name) {
super(name);
}
@@ -54,6 +54,7 @@ public void setObjectValue(Object v) {
try {
setNumberValue(v.toString());
} catch (RuntimeException ignored) {
+ // Intentionally left blank
}
}
}
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/FindTestElementsUpToRootTraverser.java b/src/core/src/main/java/org/apache/jmeter/threads/FindTestElementsUpToRootTraverser.java
index 25e052d9881..6613e1b02c3 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/FindTestElementsUpToRootTraverser.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/FindTestElementsUpToRootTraverser.java
@@ -17,8 +17,9 @@
package org.apache.jmeter.threads;
+import java.util.ArrayDeque;
import java.util.ArrayList;
-import java.util.LinkedList;
+import java.util.Deque;
import java.util.List;
import org.apache.jmeter.control.Controller;
@@ -35,7 +36,7 @@
public class FindTestElementsUpToRootTraverser implements HashTreeTraverser {
private static final Logger log = LoggerFactory.getLogger(FindTestElementsUpToRootTraverser.class);
- private final LinkedList stack = new LinkedList<>();
+ private final Deque stack = new ArrayDeque<>();
/**
* Node to find in TestTree
@@ -89,7 +90,7 @@ public void processPath() {
*/
public List getControllersToRoot() {
List result = new ArrayList<>(stack.size());
- LinkedList stackLocalCopy = new LinkedList<>(stack);
+ Deque stackLocalCopy = new ArrayDeque<>(stack);
while(!stackLocalCopy.isEmpty()) {
TestElement te = stackLocalCopy.getLast();
if(te instanceof Controller) {
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/JMeterThread.java b/src/core/src/main/java/org/apache/jmeter/threads/JMeterThread.java
index b643f8fcf29..b33c763b89a 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/JMeterThread.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/JMeterThread.java
@@ -321,8 +321,8 @@ public void run() {
throw e; // Must not ignore this one
} finally {
currentSamplerForInterruption = null; // prevent any further interrupts
+ interruptLock.lock(); // make sure current interrupt is finished, prevent another starting yet
try {
- interruptLock.lock(); // make sure current interrupt is finished, prevent another starting yet
threadContext.clear();
log.info("Thread finished: {}", threadName);
threadFinished(iterationListener);
@@ -819,8 +819,8 @@ public void stop() { // Called by StandardJMeterEngine, TestAction and AccessLog
/** {@inheritDoc} */
@Override
public boolean interrupt(){
+ interruptLock.lock();
try {
- interruptLock.lock();
Sampler samp = currentSamplerForInterruption; // fetch once; must be done under lock
if (samp instanceof Interruptible){ // (also protects against null)
if (log.isWarnEnabled()) {
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/JMeterVariables.java b/src/core/src/main/java/org/apache/jmeter/threads/JMeterVariables.java
index 85e2a521484..7f652380e77 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/JMeterVariables.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/JMeterVariables.java
@@ -21,7 +21,6 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
import org.apache.jmeter.util.JMeterUtils;
@@ -161,7 +160,7 @@ public Object getObject(String key) {
*
* @return the iterator
*/
- public Iterator> getIterator(){
+ public Iterator> getIterator(){
return Collections.unmodifiableMap(variables).entrySet().iterator() ;
}
@@ -169,7 +168,7 @@ public Iterator> getIterator(){
/**
* @return an unmodifiable view of the entries contained in {@link JMeterVariables}
*/
- public Set> entrySet(){
+ public Set> entrySet(){
return Collections.unmodifiableMap(variables).entrySet();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/TestCompiler.java b/src/core/src/main/java/org/apache/jmeter/threads/TestCompiler.java
index cc5228e5491..2c0d4646528 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/TestCompiler.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/TestCompiler.java
@@ -17,6 +17,7 @@
package org.apache.jmeter.threads;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
@@ -52,6 +53,7 @@
* A map with key TransactionController and as value the associated SamplePackage
*
*/
+@SuppressWarnings("JdkObsolete")
public class TestCompiler implements HashTreeTraverser {
private static final Logger log = LoggerFactory.getLogger(TestCompiler.class);
@@ -64,6 +66,7 @@ public class TestCompiler implements HashTreeTraverser {
*/
private static final Set PAIRING = new HashSet<>();
+ // TODO: replace with ArrayDequeue
private final LinkedList stack = new LinkedList<>();
private final Map samplerConfigMap = new HashMap<>();
@@ -193,18 +196,18 @@ public void processPath() {
}
private void saveSamplerConfigs(Sampler sam) {
- List configs = new LinkedList<>();
- List controllers = new LinkedList<>();
- List listeners = new LinkedList<>();
- List timers = new LinkedList<>();
- List assertions = new LinkedList<>();
- LinkedList posts = new LinkedList<>();
- LinkedList pres = new LinkedList<>();
+ List configs = new ArrayList<>();
+ List controllers = new ArrayList<>();
+ List listeners = new ArrayList<>();
+ List timers = new ArrayList<>();
+ List assertions = new ArrayList<>();
+ List posts = new ArrayList<>();
+ List pres = new ArrayList<>();
for (int i = stack.size(); i > 0; i--) {
addDirectParentControllers(controllers, stack.get(i - 1));
- List tempPre = new LinkedList<>();
- List tempPost = new LinkedList<>();
- List tempAssertions = new LinkedList<>();
+ List tempPre = new ArrayList<>();
+ List tempPost = new ArrayList<>();
+ List tempAssertions = new ArrayList<>();
for (Object item : testTree.list(stack.subList(0, i))) {
if (item instanceof ConfigTestElement) {
configs.add((ConfigTestElement) item);
@@ -238,13 +241,13 @@ private void saveSamplerConfigs(Sampler sam) {
}
private void saveTransactionControllerConfigs(TransactionController tc) {
- List configs = new LinkedList<>();
- List controllers = new LinkedList<>();
- List listeners = new LinkedList<>();
- List timers = new LinkedList<>();
- List assertions = new LinkedList<>();
- LinkedList posts = new LinkedList<>();
- LinkedList pres = new LinkedList<>();
+ List configs = new ArrayList<>();
+ List controllers = new ArrayList<>();
+ List listeners = new ArrayList<>();
+ List timers = new ArrayList<>();
+ List assertions = new ArrayList<>();
+ List posts = new ArrayList<>();
+ List pres = new ArrayList<>();
for (int i = stack.size(); i > 0; i--) {
addDirectParentControllers(controllers, stack.get(i - 1));
for (Object item : testTree.list(stack.subList(0, i))) {
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java b/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java
index 8a376c7b0a2..ad0e0012180 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/ThreadGroup.java
@@ -19,7 +19,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
-import java.util.Map.Entry;
+import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
@@ -41,6 +41,7 @@
* This class is intended to be ThreadSafe.
*/
@GUIMenuSortOrder(1)
+@SuppressWarnings("JavaLangClash")
public class ThreadGroup extends AbstractThreadGroup {
private static final long serialVersionUID = 282L;
@@ -198,7 +199,7 @@ private void scheduleThread(JMeterThread thread, long now) {
// set the endtime for the Thread
if (getDuration() > 0) {// Duration is in seconds
- thread.setEndTime(getDuration() * 1000 + (thread.getStartTime()));
+ thread.setEndTime(getDuration() * 1000 + thread.getStartTime());
} else {
throw new JMeterStopTestException("Invalid duration " + getDuration() + " set in Thread Group:" + getName());
}
@@ -232,7 +233,9 @@ public void start(int groupNum, ListenerNotifier notifier, ListedHashTree thread
long nowInMillis = System.currentTimeMillis();
if(threadNum > 0) {
long timeElapsedToStartLastThread = nowInMillis - lastThreadStartInMillis;
- delayForNextThreadInMillis += perThreadDelayInMillis - timeElapsedToStartLastThread;
+ // Note: `int += long` assignment hides lossy cast to int
+ delayForNextThreadInMillis = (int) (delayForNextThreadInMillis +
+ (perThreadDelayInMillis - timeElapsedToStartLastThread));
}
if (log.isDebugEnabled()) {
log.debug("Computed delayForNextThreadInMillis:{} for thread:{}", delayForNextThreadInMillis, Thread.currentThread().getId());
@@ -321,6 +324,7 @@ private JMeterThread makeThread(
}
@Override
+ @SuppressWarnings("SynchronizeOnNonFinalField")
public JMeterThread addNewThread(int delay, StandardJMeterEngine engine) {
long now = System.currentTimeMillis();
JMeterContext context = JMeterContextService.getContext();
@@ -349,7 +353,7 @@ public JMeterThread addNewThread(int delay, StandardJMeterEngine engine) {
*/
@Override
public boolean stopThread(String threadName, boolean now) {
- for (Entry threadEntry : allThreads.entrySet()) {
+ for (Map.Entry threadEntry : allThreads.entrySet()) {
JMeterThread jMeterThread = threadEntry.getKey();
if (jMeterThread.getThreadName().equals(threadName)) {
stopThread(jMeterThread, threadEntry.getValue(), now);
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java b/src/core/src/main/java/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
index 515b526c5e5..3e77e91fb4f 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/UnmodifiableJMeterVariables.java
@@ -19,7 +19,6 @@
import java.util.Iterator;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.Set;
/**
@@ -120,15 +119,16 @@ public Object getObject(String key) {
}
@Override
- public Iterator> getIterator() {
+ public Iterator> getIterator() {
return variables.getIterator();
}
@Override
- public Set> entrySet() {
+ public Set> entrySet() {
return variables.entrySet();
}
+ @Override
public String toString() {
return variables.toString();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/threads/gui/AbstractThreadGroupGui.java b/src/core/src/main/java/org/apache/jmeter/threads/gui/AbstractThreadGroupGui.java
index 9187a696341..b72dde6f276 100644
--- a/src/core/src/main/java/org/apache/jmeter/threads/gui/AbstractThreadGroupGui.java
+++ b/src/core/src/main/java/org/apache/jmeter/threads/gui/AbstractThreadGroupGui.java
@@ -52,7 +52,7 @@ public abstract class AbstractThreadGroupGui extends AbstractJMeterGuiComponent
private JRadioButton stopTestBox;
private JRadioButton stopTestNowBox;
- public AbstractThreadGroupGui(){
+ protected AbstractThreadGroupGui(){
super();
init();
initGui();
diff --git a/src/core/src/main/java/org/apache/jmeter/util/BSFTestElement.java b/src/core/src/main/java/org/apache/jmeter/util/BSFTestElement.java
index bc48ac7be9e..8b3a49f3ea3 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/BSFTestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/BSFTestElement.java
@@ -51,7 +51,7 @@ public abstract class BSFTestElement extends ScriptingTestElement
new String[]{"js"}); //$NON-NLS-1$
}
- public BSFTestElement() {
+ protected BSFTestElement() {
super();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/util/BeanShellTestElement.java b/src/core/src/main/java/org/apache/jmeter/util/BeanShellTestElement.java
index 4667635fb23..a58a992f094 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/BeanShellTestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/BeanShellTestElement.java
@@ -52,7 +52,7 @@ public abstract class BeanShellTestElement extends AbstractTestElement
private transient boolean hasInitFile = false;
- public BeanShellTestElement() {
+ protected BeanShellTestElement() {
super();
init();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/util/HttpSSLProtocolSocketFactory.java b/src/core/src/main/java/org/apache/jmeter/util/HttpSSLProtocolSocketFactory.java
index af8f8c02ec0..9c5e927ee3a 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/HttpSSLProtocolSocketFactory.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/HttpSSLProtocolSocketFactory.java
@@ -56,15 +56,14 @@ public class HttpSSLProtocolSocketFactory
}
}
- private final int CPS; // Characters per second to emulate
+ private final int cps; // Characters per second to emulate
public HttpSSLProtocolSocketFactory() {
this(0);
}
public HttpSSLProtocolSocketFactory(int cps) {
- super();
- CPS=cps;
+ this.cps = cps;
}
@@ -120,8 +119,8 @@ private SSLSocketFactory getSSLSocketFactory() throws IOException {
* Wraps the socket in a slow SSL socket if necessary
*/
private Socket wrapSocket(Socket sock){
- if (CPS>0) {
- return new SlowSSLSocket((SSLSocket) sock, CPS);
+ if (cps >0) {
+ return new SlowSSLSocket((SSLSocket) sock, cps);
}
return sock;
}
diff --git a/src/core/src/main/java/org/apache/jmeter/util/JMeterUtils.java b/src/core/src/main/java/org/apache/jmeter/util/JMeterUtils.java
index f9de829a0e8..8974bf509bb 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/JMeterUtils.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/JMeterUtils.java
@@ -30,6 +30,7 @@
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
@@ -39,7 +40,7 @@
import java.util.MissingResourceException;
import java.util.Properties;
import java.util.ResourceBundle;
-import java.util.Vector;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors;
@@ -101,7 +102,8 @@ private LazyPatternCacheHolder() {
private static volatile Properties appProperties;
- private static final Vector localeChangeListeners = new Vector<>();
+ private static final CopyOnWriteArrayList localeChangeListeners =
+ new CopyOnWriteArrayList<>();
private static volatile Locale locale;
@@ -414,12 +416,7 @@ public static void removeLocaleChangeListener(LocaleChangeListener listener) {
*/
private static void notifyLocaleChangeListeners() {
LocaleChangeEvent event = new LocaleChangeEvent(JMeterUtils.class, locale);
- @SuppressWarnings("unchecked") // clone will produce correct type
- // TODO but why do we need to clone the list?
- // ANS: to avoid possible ConcurrentUpdateException when unsubscribing
- // Could perhaps avoid need to clone by using a modern concurrent list
- Vector listeners = (Vector) localeChangeListeners.clone();
- for (LocaleChangeListener listener : listeners) {
+ for (LocaleChangeListener listener : localeChangeListeners) {
listener.localeChanged(event);
}
}
@@ -659,9 +656,9 @@ public static String getResourceFileAsText(String name) {
try {
String lineEnd = System.getProperty("line.separator"); // $NON-NLS-1$
InputStream is = JMeterUtils.class.getClassLoader().getResourceAsStream(name);
- if(is != null) {
- try (Reader in = new InputStreamReader(is);
- BufferedReader fileReader = new BufferedReader(in)) {
+ if (is != null) {
+ try (Reader in = new InputStreamReader(is, StandardCharsets.UTF_8);
+ BufferedReader fileReader = new BufferedReader(in)) {
return fileReader.lines()
.collect(Collectors.joining(lineEnd, "", lineEnd));
}
diff --git a/src/core/src/main/java/org/apache/jmeter/util/JSR223BeanInfoSupport.java b/src/core/src/main/java/org/apache/jmeter/util/JSR223BeanInfoSupport.java
index c9174c50317..825b45b2356 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/JSR223BeanInfoSupport.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/JSR223BeanInfoSupport.java
@@ -23,7 +23,6 @@
import java.util.ListResourceBundle;
import java.util.Locale;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.ResourceBundle;
import javax.script.ScriptEngineFactory;
@@ -61,7 +60,7 @@ public abstract class JSR223BeanInfoSupport extends ScriptingBeanInfoSupport {
Arrays.sort(LANGUAGE_TAGS);
CONSTANT_LANGUAGE_NAMES = new String[nameMap.size()][2];
int i = 0;
- for(Entry me : nameMap.entrySet()) {
+ for(Map.Entry me : nameMap.entrySet()) {
final String key = me.getKey();
CONSTANT_LANGUAGE_NAMES[i][0] = key;
final ScriptEngineFactory fact = me.getValue();
diff --git a/src/core/src/main/java/org/apache/jmeter/util/JSR223TestElement.java b/src/core/src/main/java/org/apache/jmeter/util/JSR223TestElement.java
index 9a5682455f4..7ad70819f45 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/JSR223TestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/JSR223TestElement.java
@@ -19,9 +19,9 @@
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
import java.io.Serializable;
+import java.nio.file.Files;
import java.util.Collections;
import java.util.Map;
import java.util.Properties;
@@ -85,7 +85,7 @@ public static ScriptEngineManager getInstance() {
return LazyHolder.INSTANCE;
}
- public JSR223TestElement() {
+ protected JSR223TestElement() {
super();
}
@@ -169,7 +169,7 @@ protected Object processFileOrScript(ScriptEngine scriptEngine, final Bindings p
// Hack: bsh-2.0b5.jar BshScriptEngine implements Compilable but throws
// "java.lang.Error: unimplemented"
boolean supportsCompilable = scriptEngine instanceof Compilable
- && !("bsh.engine.BshScriptEngine".equals(scriptEngine.getClass().getName())); // NOSONAR // $NON-NLS-1$
+ && !"bsh.engine.BshScriptEngine".equals(scriptEngine.getClass().getName()); // NOSONAR // $NON-NLS-1$
try {
if (!StringUtils.isEmpty(getFilename())) {
if (scriptFile.exists() && scriptFile.canRead()) {
@@ -182,9 +182,7 @@ protected Object processFileOrScript(ScriptEngine scriptEngine, final Bindings p
synchronized (compiledScriptsCache) {
compiledScript = compiledScriptsCache.get(newCacheKey);
if (compiledScript == null) {
- // TODO Charset ?
- try (BufferedReader fileReader = new BufferedReader(new FileReader(scriptFile),
- (int) scriptFile.length())) {
+ try (BufferedReader fileReader = Files.newBufferedReader(scriptFile.toPath())) {
compiledScript = ((Compilable) scriptEngine).compile(fileReader);
compiledScriptsCache.put(newCacheKey, compiledScript);
}
@@ -193,9 +191,7 @@ protected Object processFileOrScript(ScriptEngine scriptEngine, final Bindings p
}
return compiledScript.eval(bindings);
} else {
- // TODO Charset ?
- try (BufferedReader fileReader = new BufferedReader(new FileReader(scriptFile),
- (int) scriptFile.length())) {
+ try (BufferedReader fileReader = Files.newBufferedReader(scriptFile.toPath())) {
return scriptEngine.eval(fileReader, bindings);
}
}
@@ -245,7 +241,7 @@ public boolean compile()
String lang = getScriptLanguageWithDefault();
ScriptEngine scriptEngine = getInstance().getEngineByName(lang);
boolean supportsCompilable = scriptEngine instanceof Compilable
- && !("bsh.engine.BshScriptEngine".equals(scriptEngine.getClass().getName())); // NOSONAR // $NON-NLS-1$
+ && !"bsh.engine.BshScriptEngine".equals(scriptEngine.getClass().getName()); // NOSONAR // $NON-NLS-1$
if(!supportsCompilable) {
return true;
}
@@ -259,8 +255,7 @@ public boolean compile()
}
} else {
File scriptFile = new File(getFilename());
- try (BufferedReader fileReader = new BufferedReader(new FileReader(scriptFile),
- (int) scriptFile.length())) {
+ try (BufferedReader fileReader = Files.newBufferedReader(scriptFile.toPath())) {
try {
((Compilable) scriptEngine).compile(fileReader);
return true;
diff --git a/src/core/src/main/java/org/apache/jmeter/util/NameUpdater.java b/src/core/src/main/java/org/apache/jmeter/util/NameUpdater.java
index b63d255fcc3..3f0e2e77bd8 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/NameUpdater.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/NameUpdater.java
@@ -30,6 +30,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@SuppressWarnings("JdkObsolete")
public final class NameUpdater {
private static final Properties nameMap;
// Read-only access after class has been initialised
diff --git a/src/core/src/main/java/org/apache/jmeter/util/ScriptingBeanInfoSupport.java b/src/core/src/main/java/org/apache/jmeter/util/ScriptingBeanInfoSupport.java
index 69f078757b3..e14b4e1249f 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/ScriptingBeanInfoSupport.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/ScriptingBeanInfoSupport.java
@@ -40,7 +40,7 @@ public abstract class ScriptingBeanInfoSupport extends BeanInfoSupport {
static final String FALSE_AS_STRING = Boolean.FALSE.toString();
static final String TRUE_AS_STRING = Boolean.TRUE.toString();
- public ScriptingBeanInfoSupport(Class extends TestBean> beanClass, String[] languageTags) {
+ protected ScriptingBeanInfoSupport(Class extends TestBean> beanClass, String[] languageTags) {
this(beanClass, languageTags, null);
}
diff --git a/src/core/src/main/java/org/apache/jmeter/util/ScriptingTestElement.java b/src/core/src/main/java/org/apache/jmeter/util/ScriptingTestElement.java
index 6f2889f3564..b1a9a011f41 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/ScriptingTestElement.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/ScriptingTestElement.java
@@ -43,7 +43,7 @@ public abstract class ScriptingTestElement extends AbstractTestElement {
//-- For TestBean implementations only
- public ScriptingTestElement() {
+ protected ScriptingTestElement() {
super();
}
diff --git a/src/core/src/main/java/org/apache/jmeter/util/keystore/JmeterKeyStore.java b/src/core/src/main/java/org/apache/jmeter/util/keystore/JmeterKeyStore.java
index e1ab1f8bba6..5a3afdf8a18 100644
--- a/src/core/src/main/java/org/apache/jmeter/util/keystore/JmeterKeyStore.java
+++ b/src/core/src/main/java/org/apache/jmeter/util/keystore/JmeterKeyStore.java
@@ -102,6 +102,7 @@ private JmeterKeyStore(String type, int startIndex, int endIndex, String clientC
* @throws UnrecoverableKeyException if the key can not be recovered from the store (should not
* happen here, either)
*/
+ @SuppressWarnings("JdkObsolete")
public void load(InputStream is, String pword)
throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException, UnrecoverableKeyException {
char[] pw = toCharArrayOrNull(pword);
diff --git a/src/core/src/main/java/org/apache/jmeter/visualizers/Sample.java b/src/core/src/main/java/org/apache/jmeter/visualizers/Sample.java
index 0240bf9c6dc..bb0fec28456 100644
--- a/src/core/src/main/java/org/apache/jmeter/visualizers/Sample.java
+++ b/src/core/src/main/java/org/apache/jmeter/visualizers/Sample.java
@@ -208,6 +208,7 @@ public long getStartTime() {
* @return the start time using the specified format
* Intended for use from Functors
*/
+ @SuppressWarnings("JdkObsolete")
public String getStartTimeFormatted(Format format) {
return format.format(new Date(getStartTime()));
}
diff --git a/src/core/src/main/java/org/apache/jmeter/visualizers/TableSample.java b/src/core/src/main/java/org/apache/jmeter/visualizers/TableSample.java
index 5488ada5f2b..9c7f62efc42 100644
--- a/src/core/src/main/java/org/apache/jmeter/visualizers/TableSample.java
+++ b/src/core/src/main/java/org/apache/jmeter/visualizers/TableSample.java
@@ -107,6 +107,7 @@ public long getStartTime() {
* @return the start time using the specified format
* Intended for use from Functors
*/
+ @SuppressWarnings("JdkObsolete")
public String getStartTimeFormatted(Format format) {
return format.format(new Date(getStartTime()));
}
diff --git a/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java b/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java
index 368af7968e6..68802c6723d 100644
--- a/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java
+++ b/src/core/src/main/java/org/apache/jmeter/visualizers/gui/AbstractVisualizer.java
@@ -120,7 +120,7 @@ public abstract class AbstractVisualizer
protected boolean isStats = false;
- public AbstractVisualizer() {
+ protected AbstractVisualizer() {
super();
// errorLogging and successOnlyLogging are mutually exclusive
diff --git a/src/core/src/test/java/org/apache/jmeter/junit/JMeterTestCaseJUnit.java b/src/core/src/test/java/org/apache/jmeter/junit/JMeterTestCaseJUnit.java
index 7eaa5af095a..27c5074ddf0 100644
--- a/src/core/src/test/java/org/apache/jmeter/junit/JMeterTestCaseJUnit.java
+++ b/src/core/src/test/java/org/apache/jmeter/junit/JMeterTestCaseJUnit.java
@@ -38,11 +38,11 @@ public abstract class JMeterTestCaseJUnit extends TestCase {
// Used by findTestFile
private static final String filePrefix;
- public JMeterTestCaseJUnit() {
+ protected JMeterTestCaseJUnit() {
super();
}
- public JMeterTestCaseJUnit(String name) {
+ protected JMeterTestCaseJUnit(String name) {
super(name);
}
diff --git a/src/core/src/test/java/org/apache/jmeter/listeners/TestResultAction.java b/src/core/src/test/java/org/apache/jmeter/listeners/TestResultAction.java
index 7b286c253ba..72b6cbc35b4 100644
--- a/src/core/src/test/java/org/apache/jmeter/listeners/TestResultAction.java
+++ b/src/core/src/test/java/org/apache/jmeter/listeners/TestResultAction.java
@@ -53,6 +53,7 @@ public void testSuccess() {
}
@Test
+ @SuppressWarnings("deprecation")
public void testOnFailureStopTest() {
sampleResult.setSuccessful(false);
resultAction.setErrorAction(ResultAction.ON_ERROR_STOPTEST);
@@ -64,6 +65,7 @@ public void testOnFailureStopTest() {
}
@Test
+ @SuppressWarnings("deprecation")
public void testOnFailureStopTestNow() {
sampleResult.setSuccessful(false);
resultAction.setErrorAction(ResultAction.ON_ERROR_STOPTEST_NOW);
@@ -75,6 +77,7 @@ public void testOnFailureStopTestNow() {
}
@Test
+ @SuppressWarnings("deprecation")
public void testOnFailureStopThread() {
sampleResult.setSuccessful(false);
resultAction.setErrorAction(ResultAction.ON_ERROR_STOPTHREAD);
@@ -86,6 +89,7 @@ public void testOnFailureStopThread() {
}
@Test
+ @SuppressWarnings("deprecation")
public void testOnFailureStartNextThreadLoop() {
sampleResult.setSuccessful(false);
resultAction.setErrorAction(ResultAction.ON_ERROR_START_NEXT_THREAD_LOOP);
diff --git a/src/core/src/test/java/org/apache/jmeter/report/processor/graph/impl/CustomGraphConsumerTest.java b/src/core/src/test/java/org/apache/jmeter/report/processor/graph/impl/CustomGraphConsumerTest.java
index 123d33c24be..30569724327 100644
--- a/src/core/src/test/java/org/apache/jmeter/report/processor/graph/impl/CustomGraphConsumerTest.java
+++ b/src/core/src/test/java/org/apache/jmeter/report/processor/graph/impl/CustomGraphConsumerTest.java
@@ -22,7 +22,6 @@
import java.util.HashMap;
import java.util.Map;
-import java.util.Map.Entry;
import org.apache.jmeter.report.core.Sample;
import org.apache.jmeter.report.core.SampleMetadata;
@@ -83,7 +82,7 @@ public void testInitializeExtraResults() {
customGraphConsumer.initializeExtraResults(resultData);
JsonizerVisitor jsonizer = new JsonizerVisitor();
- for (Entry entrySet : resultData.entrySet()) {
+ for (Map.Entry entrySet : resultData.entrySet()) {
Object testedValue = entrySet.getValue().accept(jsonizer);
String key = entrySet.getKey();
diff --git a/src/core/src/test/java/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java b/src/core/src/test/java/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
index 0cc6306101c..fef4df0dec1 100644
--- a/src/core/src/test/java/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
+++ b/src/core/src/test/java/org/apache/jmeter/threads/TestUnmodifiableJMeterVariables.java
@@ -23,7 +23,6 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import java.util.Map.Entry;
import org.hamcrest.CoreMatchers;
import org.junit.jupiter.api.Assertions;
@@ -103,7 +102,7 @@ public void testGetObject() {
@Test
public void testGetIteratorIsUnmodifable() {
- Iterator> iterator = unmodifiables.getIterator();
+ Iterator> iterator = unmodifiables.getIterator();
assertThat(iterator.hasNext(), CoreMatchers.is(true));
iterator.next();
assertThrowsUnsupportedOperation(iterator::remove);
@@ -121,10 +120,10 @@ public void testGetIterator() {
assertThat(iteratorToMap(unmodifiables.getIterator()), CoreMatchers.is(iteratorToMap(vars.getIterator())));
}
- private Map iteratorToMap(Iterator> it) {
+ private Map iteratorToMap(Iterator> it) {
Map result = new HashMap<>();
while (it.hasNext()) {
- Entry entry = it.next();
+ Map.Entry entry = it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
diff --git a/src/core/src/test/java/org/apache/jmeter/util/SecurityProviderLoaderTest.java b/src/core/src/test/java/org/apache/jmeter/util/SecurityProviderLoaderTest.java
index a03a268e36e..ece1cbf6445 100644
--- a/src/core/src/test/java/org/apache/jmeter/util/SecurityProviderLoaderTest.java
+++ b/src/core/src/test/java/org/apache/jmeter/util/SecurityProviderLoaderTest.java
@@ -175,6 +175,7 @@ public static class DummyProvider extends Provider {
private static final long serialVersionUID = 1L;
public static final String PROVIDER_NAME = "DUMMY";
+ @SuppressWarnings("deprecation")
public DummyProvider() {
super(PROVIDER_NAME, 1.0, PROVIDER_NAME);
}
@@ -187,6 +188,7 @@ public static class DummyProviderWithConfig extends Provider {
private String config = null;
+ @SuppressWarnings("deprecation")
public DummyProviderWithConfig() {
super(PROVIDER_NAME, 1.0, PROVIDER_NAME);
}
diff --git a/src/dist-check/src/test/java/org/apache/jmeter/junit/JMeterTest.java b/src/dist-check/src/test/java/org/apache/jmeter/junit/JMeterTest.java
index a8cb5fb24d0..87a03ae61aa 100644
--- a/src/dist-check/src/test/java/org/apache/jmeter/junit/JMeterTest.java
+++ b/src/dist-check/src/test/java/org/apache/jmeter/junit/JMeterTest.java
@@ -28,6 +28,7 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.HashMap;
@@ -508,8 +509,9 @@ private static Throwable instantiateClass(final String extendsClassName, final O
Class> c = Class.forName(className);
try {
// Try with a parameter-less constructor first
- objects.add(c.newInstance());
- } catch (InstantiationException e) {
+ objects.add(c.getDeclaredConstructor().newInstance());
+ } catch (InstantiationException | NoSuchMethodException | IllegalAccessException |
+ InvocationTargetException e) {
caught = e;
try {
// Events often have this constructor
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/AbstractFunctionByKey.java b/src/functions/src/main/java/org/apache/jmeter/functions/AbstractFunctionByKey.java
index 112f91583c9..878f90ac335 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/AbstractFunctionByKey.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/AbstractFunctionByKey.java
@@ -35,7 +35,7 @@ abstract class AbstractFunctionByKey extends AbstractFunction {
private Object[] values;
- public AbstractFunctionByKey(String key, int parametersCount) {
+ protected AbstractFunctionByKey(String key, int parametersCount) {
this.key = key;
this.parametersCount = parametersCount;
}
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/AbstractHostIPName.java b/src/functions/src/main/java/org/apache/jmeter/functions/AbstractHostIPName.java
index 6f85eb911ea..90a97d08ab1 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/AbstractHostIPName.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/AbstractHostIPName.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -29,7 +29,7 @@
abstract class AbstractHostIPName extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
static {
desc.add(JMeterUtils.getResString("function_name_paropt")); //$NON-NLS-1$
@@ -37,7 +37,7 @@ abstract class AbstractHostIPName extends AbstractFunction {
private Object[] values;
- public AbstractHostIPName() {
+ protected AbstractHostIPName() {
}
/** {@inheritDoc} */
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/BeanShell.java b/src/functions/src/main/java/org/apache/jmeter/functions/BeanShell.java
index ce9cdca6f24..88d64cd8e6b 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/BeanShell.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/BeanShell.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -40,7 +40,7 @@ public class BeanShell extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(BeanShell.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__BeanShell"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/CSVRead.java b/src/functions/src/main/java/org/apache/jmeter/functions/CSVRead.java
index c49c7bfa5d6..c9a80a34a5b 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/CSVRead.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/CSVRead.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -58,7 +58,7 @@ public class CSVRead extends AbstractFunction {
private static final String KEY = "__CSVRead"; // Function name //$NON-NLS-1$
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private Object[] values; // Parameter list
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 fb06af97724..56a98b9fd1b 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
@@ -17,9 +17,9 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.EnumSet;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
@@ -46,7 +46,7 @@
*/
public class ChangeCase extends AbstractFunction {
private static final Logger LOGGER = LoggerFactory.getLogger(ChangeCase.class);
- private static final List DESC = new LinkedList<>();
+ private static final List DESC = new ArrayList<>();
private static final String KEY = "__changeCase";
private static final int MIN_PARAMETER_COUNT = 1;
@@ -123,7 +123,7 @@ public List getArgumentDesc() {
*/
public enum ChangeCaseMode {
UPPER("UPPER"), LOWER("LOWER"), CAPITALIZE("CAPITALIZE");
- private String mode;
+ private final String mode;
private ChangeCaseMode(String mode) {
this.mode = mode;
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/CharFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/CharFunction.java
index d474cdcf652..94e5df40c12 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/CharFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/CharFunction.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -36,7 +36,7 @@ public class CharFunction extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(CharFunction.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__char"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/DateTimeConvertFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/DateTimeConvertFunction.java
index d0fd394d6d5..002d795f66b 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/DateTimeConvertFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/DateTimeConvertFunction.java
@@ -18,9 +18,9 @@
package org.apache.jmeter.functions;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -40,7 +40,7 @@
public class DateTimeConvertFunction extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(DateTimeConvertFunction.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__dateTimeConvert";
// Number of parameters expected - used to reject invalid calls
@@ -62,6 +62,7 @@ public List getArgumentDesc() {
}
@Override
+ @SuppressWarnings("JdkObsolete")
public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
String dateString = values[0].execute();
String sourceDateFormat = values[1].execute();
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 5a91f4a55e4..9906b42da84 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
@@ -20,8 +20,8 @@
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.codec.binary.Hex;
@@ -51,7 +51,7 @@ public class DigestEncodeFunction extends AbstractFunction {
* The algorithm names in this section can be specified when generating an
* instance of MessageDigest: MD5 SHA-1 SHA-256 SHA-384 SHA-512
*/
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__digest";
// Number of parameters expected - used to reject invalid calls
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/EscapeHtml.java b/src/functions/src/main/java/org/apache/jmeter/functions/EscapeHtml.java
index 7a007880a28..4b3d4186c81 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/EscapeHtml.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/EscapeHtml.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.text.StringEscapeUtils;
@@ -48,7 +48,7 @@
*/
public class EscapeHtml extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__escapeHtml"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/EscapeOroRegexpChars.java b/src/functions/src/main/java/org/apache/jmeter/functions/EscapeOroRegexpChars.java
index ef8dfd5e48f..01a24485ed4 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/EscapeOroRegexpChars.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/EscapeOroRegexpChars.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -37,7 +37,7 @@
public class EscapeOroRegexpChars extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(EscapeOroRegexpChars.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__escapeOroRegexpChars"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/EscapeXml.java b/src/functions/src/main/java/org/apache/jmeter/functions/EscapeXml.java
index bde6cb777cc..4dce679a768 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/EscapeXml.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/EscapeXml.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.text.StringEscapeUtils;
@@ -45,7 +45,7 @@
*/
public class EscapeXml extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__escapeXml"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/EvalFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/EvalFunction.java
index 5c31d1b8d14..33c90be05f4 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/EvalFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/EvalFunction.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -36,7 +36,7 @@
*/
public class EvalFunction extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__eval"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/EvalVarFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/EvalVarFunction.java
index f28fce5dbc7..4d3521e81e3 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/EvalVarFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/EvalVarFunction.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -41,7 +41,7 @@ public class EvalVarFunction extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(EvalVarFunction.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__evalVar"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/FileToString.java b/src/functions/src/main/java/org/apache/jmeter/functions/FileToString.java
index 1d147d0cb13..519fb699193 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/FileToString.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/FileToString.java
@@ -19,8 +19,8 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.io.FileUtils;
@@ -53,7 +53,7 @@
public class FileToString extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(FileToString.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__FileToString";//$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Groovy.java b/src/functions/src/main/java/org/apache/jmeter/functions/Groovy.java
index ef0d4500731..5e23c7b5a36 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Groovy.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Groovy.java
@@ -21,8 +21,8 @@
import java.io.Reader;
import java.nio.charset.Charset;
import java.nio.file.Files;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
@@ -51,7 +51,7 @@ public class Groovy extends AbstractFunction {
private static final String GROOVY_ENGINE_NAME = "groovy";
- private static final List DESCRIPTION = new LinkedList<>();
+ private static final List DESCRIPTION = new ArrayList<>();
private static final String KEY = "__groovy"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/IntSum.java b/src/functions/src/main/java/org/apache/jmeter/functions/IntSum.java
index 3016974e5b5..92019be77c7 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/IntSum.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/IntSum.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -34,7 +34,7 @@
* @since 1.8.1
*/
public class IntSum extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__intSum"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/IsPropDefined.java b/src/functions/src/main/java/org/apache/jmeter/functions/IsPropDefined.java
index 039b3d28061..eb86e50151f 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/IsPropDefined.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/IsPropDefined.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -32,7 +32,7 @@
* @since 4.0
*/
public class IsPropDefined extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__isPropDefined";
// Number of parameters expected - used to reject invalid calls
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/IsVarDefined.java b/src/functions/src/main/java/org/apache/jmeter/functions/IsVarDefined.java
index 0eddf5b2e2f..edb8515e6a9 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/IsVarDefined.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/IsVarDefined.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -34,7 +34,7 @@
*/
public class IsVarDefined extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__isVarDefined";
// Number of parameters expected - used to reject invalid calls
private static final int MIN_PARAMETER_COUNT = 1;
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/IterationCounter.java b/src/functions/src/main/java/org/apache/jmeter/functions/IterationCounter.java
index 4b5d8554905..ad435504d0c 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/IterationCounter.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/IterationCounter.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -36,7 +36,7 @@
*/
public class IterationCounter extends AbstractFunction implements ThreadListener {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__counter"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/JavaScript.java b/src/functions/src/main/java/org/apache/jmeter/functions/JavaScript.java
index 1236ead10aa..b478417144a 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/JavaScript.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/JavaScript.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import javax.script.Bindings;
@@ -66,7 +66,7 @@ private static class LazyHolder {
private static ScriptEngineManager getInstance() {
return LazyHolder.INSTANCE;
}
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__javaScript"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Jexl2Function.java b/src/functions/src/main/java/org/apache/jmeter/functions/Jexl2Function.java
index 2c81d6700e2..7b6c185b27e 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Jexl2Function.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Jexl2Function.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.jexl2.JexlContext;
@@ -47,7 +47,7 @@ public class Jexl2Function extends AbstractFunction implements ThreadListener {
private static final String KEY = "__jexl2"; //$NON-NLS-1$
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final ThreadLocal threadLocalJexl = new ThreadLocal<>();
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Jexl3Function.java b/src/functions/src/main/java/org/apache/jmeter/functions/Jexl3Function.java
index 6437bc1c086..ac74281d479 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Jexl3Function.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Jexl3Function.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.jexl3.JexlBuilder;
@@ -48,7 +48,7 @@ public class Jexl3Function extends AbstractFunction implements ThreadListener {
private static final String KEY = "__jexl3"; //$NON-NLS-1$
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final ThreadLocal threadLocalJexl = ThreadLocal
.withInitial(Jexl3Function::createJexlEngine);
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 44abc6bbdfb..6ea2d48d04b 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
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -48,7 +48,7 @@
public class LogFunction extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(LogFunction.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__log"; //$NON-NLS-1$
@@ -157,7 +157,7 @@ static synchronized void logDetails(Logger logger, String stringToLog, String pr
}
final String threadName = Thread.currentThread().getName();
- final String separator = (comment.isEmpty()) ? DEFAULT_SEPARATOR : comment;
+ final String separator = comment.isEmpty() ? DEFAULT_SEPARATOR : comment;
switch (prioLevel) {
case ERROR:
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction2.java b/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction2.java
index 64e330bdc91..9f45af1ae44 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction2.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/LogFunction2.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -46,7 +46,7 @@
public class LogFunction2 extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(LogFunction2.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__logn"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/LongSum.java b/src/functions/src/main/java/org/apache/jmeter/functions/LongSum.java
index 7f2184d1d9b..37a8e8de517 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/LongSum.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/LongSum.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -34,7 +34,7 @@
*/
public class LongSum extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__longSum"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Property.java b/src/functions/src/main/java/org/apache/jmeter/functions/Property.java
index 5a8d7ce5a23..b2168a307fa 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Property.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Property.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -43,7 +43,7 @@
*/
public class Property extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__property"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Property2.java b/src/functions/src/main/java/org/apache/jmeter/functions/Property2.java
index 67948fb7160..701dd0fd46a 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Property2.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Property2.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -48,7 +48,7 @@
*/
public class Property2 extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__P"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Random.java b/src/functions/src/main/java/org/apache/jmeter/functions/Random.java
index 92a4bab8f0b..20921a187d1 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Random.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Random.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
@@ -35,7 +35,7 @@
*/
public class Random extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__Random"; //$NON-NLS-1$
static {
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/RandomDate.java b/src/functions/src/main/java/org/apache/jmeter/functions/RandomDate.java
index a3d85adaabf..79d17913d7b 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/RandomDate.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/RandomDate.java
@@ -202,9 +202,11 @@ public String execute(SampleResult previousResult, Sampler currentSampler) throw
return dateString;
}
+ @SuppressWarnings("JavaTimeDefaultTimeZone")
private DateTimeFormatter createFormatter(LocaleFormatObject format) {
log.debug("Create a new instance of DateTimeFormatter for format '{}' in the cache", format);
return new DateTimeFormatterBuilder().appendPattern(format.getFormat())
+ // TODO: what if year changes? (e.g. the year changes as the test executes)
.parseDefaulting(ChronoField.DAY_OF_MONTH, 1).parseDefaulting(ChronoField.MONTH_OF_YEAR, 1)
.parseDefaulting(ChronoField.YEAR_OF_ERA, Year.now().getValue()).toFormatter(format.getLocale());
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/RandomFromMultipleVars.java b/src/functions/src/main/java/org/apache/jmeter/functions/RandomFromMultipleVars.java
index 8d916f42c81..eacf8bcf511 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/RandomFromMultipleVars.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/RandomFromMultipleVars.java
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
@@ -45,7 +44,7 @@
public class RandomFromMultipleVars extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(RandomFromMultipleVars.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__RandomFromMultipleVars"; //$NON-NLS-1$
private static final String SEPARATOR = "\\|"; //$NON-NLS-1$
static {
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/RandomString.java b/src/functions/src/main/java/org/apache/jmeter/functions/RandomString.java
index 495981ded7e..1dd00483928 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/RandomString.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/RandomString.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.lang3.RandomStringUtils;
@@ -39,7 +39,7 @@
public class RandomString extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(RandomString.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__RandomString"; //$NON-NLS-1$
@@ -75,7 +75,7 @@ public String execute(SampleResult previousResult, Sampler currentSampler)
String charsToUse = null;//means no restriction
if (values.length >= CHARS) {
- charsToUse = (values[CHARS - 1]).execute().trim();
+ charsToUse = values[CHARS - 1].execute().trim();
if (charsToUse.length() <= 0) { // empty chars, return to null
charsToUse = null;
}
@@ -83,7 +83,7 @@ public String execute(SampleResult previousResult, Sampler currentSampler)
String myName = "";//$NON-NLS-1$
if (values.length >= PARAM_NAME) {
- myName = (values[PARAM_NAME - 1]).execute().trim();
+ myName = values[PARAM_NAME - 1].execute().trim();
}
String myValue = null;
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/RegexFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/RegexFunction.java
index 7b6115ae8c2..71ffd73cd27 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/RegexFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/RegexFunction.java
@@ -20,7 +20,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
@@ -56,7 +55,7 @@ public class RegexFunction extends AbstractFunction {
private Object[] values;// Parameters are stored here
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String TEMPLATE_PATTERN = "\\$(\\d+)\\$"; //$NON-NLS-1$
/** initialised to the regex \$(\d+)\$ */
@@ -248,7 +247,7 @@ public void setParameters(Collection parameters) throws Invali
private Object[] generateTemplate(String rawTemplate) {
List pieces = new ArrayList<>();
// String or Integer
- List combined = new LinkedList<>();
+ List combined = new ArrayList<>();
PatternMatcher matcher = JMeterUtils.getMatcher();
Util.split(pieces, matcher, templatePattern, rawTemplate);
PatternMatcherInput input = new PatternMatcherInput(rawTemplate);
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/SamplerName.java b/src/functions/src/main/java/org/apache/jmeter/functions/SamplerName.java
index 7c5818e1950..eedb707b96f 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/SamplerName.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/SamplerName.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -35,7 +35,7 @@ public class SamplerName extends AbstractFunction {
private static final String KEY = "__samplerName"; //$NON-NLS-1$
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
static {
desc.add(JMeterUtils.getResString("function_name_paropt")); //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/SetProperty.java b/src/functions/src/main/java/org/apache/jmeter/functions/SetProperty.java
index 8b812bffd86..7811c5686c1 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/SetProperty.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/SetProperty.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -42,7 +42,7 @@
*/
public class SetProperty extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__setProperty"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/SplitFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/SplitFunction.java
index ab349664967..17e8bb10120 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/SplitFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/SplitFunction.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -56,7 +56,7 @@
public class SplitFunction extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(SplitFunction.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__split";// $NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/StringFromFile.java b/src/functions/src/main/java/org/apache/jmeter/functions/StringFromFile.java
index 559e3286d01..e1b221da7fa 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/StringFromFile.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/StringFromFile.java
@@ -18,11 +18,12 @@
package org.apache.jmeter.functions;
import java.io.BufferedReader;
-import java.io.FileReader;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.text.DecimalFormat;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.io.IOUtils;
@@ -73,7 +74,7 @@ public class StringFromFile extends AbstractFunction implements TestStateListene
private static final Logger log = LoggerFactory.getLogger(StringFromFile.class);
// Only modified by static block so no need to synchronize subsequent read-only access
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__StringFromFile";//$NON-NLS-1$
@@ -101,9 +102,6 @@ public class StringFromFile extends AbstractFunction implements TestStateListene
// @GuardedBy("this")
private Object[] values;
- // @GuardedBy("this")
- private FileReader myFileReader = null; // File reader
-
// @GuardedBy("this")
private BufferedReader myBread = null; // Buffered reader
@@ -143,12 +141,6 @@ private synchronized void closeFile() {
} catch (IOException e) {
log.error("closeFile() error: {}", e.toString(), e);//$NON-NLS-1$
}
-
- try {
- myFileReader.close();
- } catch (IOException e) {
- log.error("closeFile() error: {}", e.toString(), e);//$NON-NLS-1$
- }
}
private synchronized void openFile() {
@@ -218,14 +210,11 @@ private synchronized void openFile() {
log.info("{} opening file {}", tn, fileName);//$NON-NLS-1$
try {
- myFileReader = new FileReader(fileName);
- myBread = new BufferedReader(myFileReader);
+ myBread = Files.newBufferedReader(Paths.get(fileName));
} catch (Exception e) {
log.error("openFile() error: {}", e.toString());//$NON-NLS-1$
- IOUtils.closeQuietly(myFileReader);
- IOUtils.closeQuietly(myBread);
+ IOUtils.closeQuietly(myBread, null);
myBread = null;
- myFileReader = null;
}
}
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 8f13a8569b8..9116a3c88e7 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
@@ -23,8 +23,8 @@
import java.nio.charset.IllegalCharsetNameException;
import java.nio.charset.StandardCharsets;
import java.nio.charset.UnsupportedCharsetException;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.Lock;
@@ -56,7 +56,7 @@
*/
public class StringToFile extends AbstractFunction {
private static final Logger log = LoggerFactory.getLogger(StringToFile.class);
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__StringToFile";//$NON-NLS-1$
private static final ConcurrentHashMap lockMap = new ConcurrentHashMap<>();
private static final Pattern NEW_LINE_PATTERN = Pattern.compile("\\\\n");
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/TestPlanName.java b/src/functions/src/main/java/org/apache/jmeter/functions/TestPlanName.java
index c316db776b9..c0ab9e8a943 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/TestPlanName.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/TestPlanName.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -32,7 +32,7 @@
*/
public class TestPlanName extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__TestPlanName"; //$NON-NLS-1$
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 580f8eb2b5b..e465f000ae7 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
@@ -17,7 +17,7 @@
package org.apache.jmeter.functions;
-import java.util.LinkedList;
+import java.util.ArrayList;
import java.util.List;
import org.apache.jmeter.samplers.SampleResult;
@@ -34,7 +34,7 @@
public class ThreadGroupName extends AbstractFunctionByKey {
private static final String KEY = "__threadGroupName"; //$NON-NLS-1$
- private static final List DESC = new LinkedList<>();
+ private static final List DESC = new ArrayList<>();
public ThreadGroupName() {
super(KEY, 0); //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/ThreadNumber.java b/src/functions/src/main/java/org/apache/jmeter/functions/ThreadNumber.java
index 0a9ab105082..0c353c32e6c 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/ThreadNumber.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/ThreadNumber.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -33,7 +33,7 @@ public class ThreadNumber extends AbstractFunction {
private static final String KEY = "__threadNum"; //$NON-NLS-1$
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
/** {@inheritDoc} */
@Override
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/TimeFunction.java b/src/functions/src/main/java/org/apache/jmeter/functions/TimeFunction.java
index f0d74299069..e6566a205fd 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/TimeFunction.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/TimeFunction.java
@@ -18,10 +18,10 @@
package org.apache.jmeter.functions;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
@@ -44,7 +44,7 @@ public class TimeFunction extends AbstractFunction {
private static final Pattern DIVISOR_PATTERN = Pattern.compile("/\\d+");
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
// Only modified in class init
private static final Map aliases = new HashMap<>();
@@ -77,6 +77,7 @@ public TimeFunction(){
/** {@inheritDoc} */
@Override
+ @SuppressWarnings("JdkObsolete")
public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
String datetime;
if (format.length() == 0){// Default to milliseconds
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/TimeShift.java b/src/functions/src/main/java/org/apache/jmeter/functions/TimeShift.java
index 2a321b0590c..c7e3a2709fe 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/TimeShift.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/TimeShift.java
@@ -197,6 +197,7 @@ public String execute(SampleResult previousResult, Sampler currentSampler) throw
return dateString;
}
+ @SuppressWarnings("JavaTimeDefaultTimeZone")
private DateTimeFormatter createFormatter(LocaleFormatObject format) {
log.debug("Create a new instance of DateTimeFormatter for format '{}' in the cache", format);
return new DateTimeFormatterBuilder().appendPattern(format.getFormat())
@@ -207,7 +208,9 @@ private DateTimeFormatter createFormatter(LocaleFormatObject format) {
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.DAY_OF_MONTH, 1)
.parseDefaulting(ChronoField.MONTH_OF_YEAR, 1)
+ // TODO: what if year changes? (e.g. the year changes as the test executes)
.parseDefaulting(ChronoField.YEAR_OF_ERA, Year.now().getValue())
+ // TODO: offset seconds might vary over time, so it is likely we should not provide a default for OFFSET_SECONDS
.parseDefaulting(ChronoField.OFFSET_SECONDS, ZonedDateTime.now().getOffset().getTotalSeconds())
.toFormatter(format.getLocale());
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/UnEscape.java b/src/functions/src/main/java/org/apache/jmeter/functions/UnEscape.java
index 917bda3e899..910c4bb48f6 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/UnEscape.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/UnEscape.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.text.StringEscapeUtils;
@@ -38,7 +38,7 @@
*/
public class UnEscape extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__unescape"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/UnEscapeHtml.java b/src/functions/src/main/java/org/apache/jmeter/functions/UnEscapeHtml.java
index 940349e2912..97a8bafa9c7 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/UnEscapeHtml.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/UnEscapeHtml.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.commons.text.StringEscapeUtils;
@@ -44,7 +44,7 @@
*/
public class UnEscapeHtml extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__unescapeHtml"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/UrlDecode.java b/src/functions/src/main/java/org/apache/jmeter/functions/UrlDecode.java
index 51e3ff9a2b4..a31f1aa2a40 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/UrlDecode.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/UrlDecode.java
@@ -21,8 +21,8 @@
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -39,7 +39,7 @@ public class UrlDecode extends AbstractFunction {
private static final String CHARSET_ENCODING = StandardCharsets.UTF_8.name();
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__urldecode"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/UrlEncode.java b/src/functions/src/main/java/org/apache/jmeter/functions/UrlEncode.java
index 6a728cd4269..410ac89a585 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/UrlEncode.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/UrlEncode.java
@@ -21,8 +21,8 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -39,7 +39,7 @@ public class UrlEncode extends AbstractFunction {
private static final String CHARSET_ENCODING = StandardCharsets.UTF_8.name();
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__urlencode"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Uuid.java b/src/functions/src/main/java/org/apache/jmeter/functions/Uuid.java
index 37d883e931e..16461968ccd 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Uuid.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Uuid.java
@@ -17,8 +17,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import java.util.UUID;
@@ -38,7 +38,7 @@
*/
public class Uuid extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__UUID"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/Variable.java b/src/functions/src/main/java/org/apache/jmeter/functions/Variable.java
index 4773ec51468..18ee52db415 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/Variable.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/Variable.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -41,7 +41,7 @@
*/
public class Variable extends AbstractFunction {
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private static final String KEY = "__V"; //$NON-NLS-1$
diff --git a/src/functions/src/main/java/org/apache/jmeter/functions/XPath.java b/src/functions/src/main/java/org/apache/jmeter/functions/XPath.java
index 6ef75d8c619..1200ccc55a1 100644
--- a/src/functions/src/main/java/org/apache/jmeter/functions/XPath.java
+++ b/src/functions/src/main/java/org/apache/jmeter/functions/XPath.java
@@ -18,8 +18,8 @@
package org.apache.jmeter.functions;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jmeter.engine.util.CompoundVariable;
@@ -50,7 +50,7 @@ public class XPath extends AbstractFunction {
private static final String KEY = "__XPath"; // Function name //$NON-NLS-1$
- private static final List desc = new LinkedList<>();
+ private static final List desc = new ArrayList<>();
private Object[] values; // Parameter list
@@ -66,14 +66,12 @@ public XPath() {
@Override
public synchronized String execute(SampleResult previousResult, Sampler currentSampler)
throws InvalidVariableException {
- String myValue = ""; //$NON-NLS-1$
-
String fileName = ((CompoundVariable) values[0]).execute();
String xpathString = ((CompoundVariable) values[1]).execute();
log.debug("execute ({} {})", fileName, xpathString);
- myValue = XPathWrapper.getXPathString(fileName, xpathString);
+ String myValue = XPathWrapper.getXPathString(fileName, xpathString);
log.debug("execute value: {}", myValue);
diff --git a/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLArgsParser.java b/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLArgsParser.java
index 08db7e2ffa9..b49b56f053e 100644
--- a/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLArgsParser.java
+++ b/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLArgsParser.java
@@ -18,8 +18,10 @@
package org.apache.commons.cli.avalon;
import java.text.ParseException;
-import java.util.Hashtable;
-import java.util.Vector;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* Parser for command line arguments.
@@ -62,10 +64,10 @@ public final class CLArgsParser {
private final CLOptionDescriptor[] optionDescriptors;
- private final Vector options;
+ private final List options = new ArrayList<>();
// Key is String or Integer
- private Hashtable optionIndex;
+ private Map optionIndex;
private final ParserControl control;
@@ -109,7 +111,7 @@ public final String[] getUnparsedArgs() {
*
* @return the list of options
*/
- public final Vector getArguments() {
+ public final List getArguments() {
return this.options;
}
@@ -218,7 +220,6 @@ private int getStateFor(final CLOptionDescriptor descriptor) {
public CLArgsParser(final String[] args, final CLOptionDescriptor[] optionDescriptors, final ParserControl control) {
this.optionDescriptors = optionDescriptors;
this.control = control;
- this.options = new Vector<>();
this.args = args;
try {
@@ -237,11 +238,11 @@ public CLArgsParser(final String[] args, final CLOptionDescriptor[] optionDescri
* @param arguments
* the arguments
*/
- private void checkIncompatibilities(final Vector arguments) throws ParseException {
+ private void checkIncompatibilities(final List arguments) throws ParseException {
final int size = arguments.size();
for (int i = 0; i < size; i++) {
- final CLOption option = arguments.elementAt(i);
+ final CLOption option = arguments.get(i);
final int id = option.getDescriptor().getId();
final CLOptionDescriptor descriptor = getDescriptorFor(id);
@@ -257,7 +258,7 @@ private void checkIncompatibilities(final Vector arguments) throws Par
}
}
- private void checkIncompatible(final Vector arguments, final int[] incompatible, final int original)
+ private void checkIncompatible(final List arguments, final int[] incompatible, final int original)
throws ParseException {
final int size = arguments.size();
@@ -266,12 +267,12 @@ private void checkIncompatible(final Vector arguments, final int[] inc
continue;
}
- final CLOption option = arguments.elementAt(i);
+ final CLOption option = arguments.get(i);
final int id = option.getDescriptor().getId();
for (int anIncompatible : incompatible) {
if (id == anIncompatible) {
- final CLOption originalOption = arguments.elementAt(original);
+ final CLOption originalOption = arguments.get(original);
final int originalId = originalOption.getDescriptor().getId();
String message = null;
@@ -398,7 +399,7 @@ private void parse() throws ParseException {
// Reached end of input arguments - perform final processing
if (this.option != null) {
if (STATE_OPTIONAL_ARG == this.state) {
- this.options.addElement(this.option);
+ this.options.add(this.option);
} else if (STATE_REQUIRE_ARG == this.state) {
final CLOptionDescriptor descriptor = getDescriptorFor(this.option.getDescriptor().getId());
final String message = "Missing argument to option " + getOptionDescription(descriptor);
@@ -406,7 +407,7 @@ private void parse() throws ParseException {
} else if (STATE_REQUIRE_2ARGS == this.state) {
if (1 == this.option.getArgumentCount()) {
this.option.addArgument("");
- this.options.addElement(this.option);
+ this.options.add(this.option);
} else {
final CLOptionDescriptor descriptor = getDescriptorFor(this.option.getDescriptor().getId());
final String message = "Missing argument to option " + getOptionDescription(descriptor);
@@ -497,7 +498,7 @@ private boolean isSeparator(final char ch, final char[] separators) {
}
private void addOption(final CLOption option) {
- this.options.addElement(option);
+ this.options.add(option);
this.lastOptionId = option.getDescriptor().getId();
this.option = null;
}
@@ -588,7 +589,7 @@ private void parseArguments() throws ParseException {
if (0 == this.ch && '-' == peekAtChar()) {
// Yes, so the second argument is missing
this.option.addArgument("");
- this.options.addElement(this.option);
+ this.options.add(this.option);
this.state = STATE_NORMAL;
}
} else // 2nd argument
@@ -656,7 +657,7 @@ private void parseNormal() throws ParseException {
*/
private void buildOptionIndex() {
final int size = this.options.size();
- this.optionIndex = new Hashtable<>(size * 2);
+ this.optionIndex = new HashMap<>(size * 2);
for (final CLOption option : this.options) {
final CLOptionDescriptor optionDescriptor = getDescriptorFor(option.getDescriptor().getId());
diff --git a/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLOptionDescriptor.java b/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLOptionDescriptor.java
index 864b55148b4..155a5a90741 100644
--- a/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLOptionDescriptor.java
+++ b/src/jorphan/src/main/java/org/apache/commons/cli/avalon/CLOptionDescriptor.java
@@ -125,7 +125,7 @@ private void checkFlags(final int flags) {
*
* @return the array of incompatible option ids
*/
- protected final int[] getIncompatible() {
+ final int[] getIncompatible() {
return this.incompatible;
}
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/collections/ListedHashTree.java b/src/jorphan/src/main/java/org/apache/jorphan/collections/ListedHashTree.java
index 9f5fbe962c3..1a7d58e34b9 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/collections/ListedHashTree.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/collections/ListedHashTree.java
@@ -21,8 +21,8 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.LinkedList;
import java.util.List;
import org.apache.jorphan.util.JMeterError;
@@ -43,7 +43,7 @@ public class ListedHashTree extends HashTree implements Serializable, Cloneable
public ListedHashTree() {
super();
- order = new LinkedList<>();
+ order = new ArrayList<>();
}
public ListedHashTree(Object key) {
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/collections/SearchByClass.java b/src/jorphan/src/main/java/org/apache/jorphan/collections/SearchByClass.java
index cc6e196d9ed..22786324935 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/collections/SearchByClass.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/collections/SearchByClass.java
@@ -17,9 +17,9 @@
package org.apache.jorphan.collections;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -52,7 +52,7 @@
* Class that should be searched for
*/
public class SearchByClass implements HashTreeTraverser {
- private final List objectsOfClass = new LinkedList<>();
+ private final List objectsOfClass = new ArrayList<>();
private final Map subTrees = new HashMap<>();
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/exec/KeyToolUtils.java b/src/jorphan/src/main/java/org/apache/jorphan/exec/KeyToolUtils.java
index 508461f2213..b7a5d34b4c5 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/exec/KeyToolUtils.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/exec/KeyToolUtils.java
@@ -181,8 +181,8 @@ public static void genkeypair(final File keystore, String alias, final String pa
}
/**
- * Formats arguments
- * @param arguments
+ * Formats arguments.
+ * @param arguments command arguments
* @return String command line
*/
private static String formatCommand(List arguments) {
@@ -440,6 +440,7 @@ private static void keytool(String command, File keystore, String password, Stri
}
/**
+ * Returns true if {@code KeyToolUtils#KEYTOOL_PATH} is configured
* @return flag whether KeyToolUtils#KEYTOOL_PATH is
* configured (is not null
)
*/
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/exec/StreamCopier.java b/src/jorphan/src/main/java/org/apache/jorphan/exec/StreamCopier.java
index 7dbe185b20d..6852ce25833 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/exec/StreamCopier.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/exec/StreamCopier.java
@@ -39,7 +39,7 @@ class StreamCopier extends Thread {
/**
* @param is {@link InputStream}
* @param os {@link OutputStream}
- * @throws IOException
+ * @throws IOException if something goes wrong
*/
StreamCopier(InputStream is, OutputStream os) throws IOException {
this.is = is;
@@ -52,19 +52,11 @@ class StreamCopier extends Thread {
@Override
public void run() {
final boolean isSystemOutput = os.equals(System.out) || os.equals(System.err);
- try {
+ try (OutputStream ignored = isSystemOutput ? null : os;
+ InputStream ignored1 = is) {
IOUtils.copyLarge(is, os);
- if (!isSystemOutput){
- os.close();
- }
- is.close();
} catch (IOException e) {
log.warn("Error writing stream", e);
- } finally {
- IOUtils.closeQuietly(is);
- if (!isSystemOutput){
- IOUtils.closeQuietly(os);
- }
}
}
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/exec/SystemCommand.java b/src/jorphan/src/main/java/org/apache/jorphan/exec/SystemCommand.java
index 1e4ad9b7a3b..1c1261f0e1a 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/exec/SystemCommand.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/exec/SystemCommand.java
@@ -121,6 +121,7 @@ public SystemCommand(File directory, long timeoutMillis, int pollInterval, Map getExecutionEnvironment() {
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/gui/AbstractTreeTableModel.java b/src/jorphan/src/main/java/org/apache/jorphan/gui/AbstractTreeTableModel.java
index e1842471825..59e1022ab39 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/gui/AbstractTreeTableModel.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/gui/AbstractTreeTableModel.java
@@ -45,13 +45,13 @@ public abstract class AbstractTreeTableModel extends DefaultTableModel implement
protected final transient List writeFunctors;
- public AbstractTreeTableModel(TreeNode root) {
+ protected AbstractTreeTableModel(TreeNode root) {
this.rootNode = root;
readFunctors = new ArrayList<>();
writeFunctors = new ArrayList<>();
}
- public AbstractTreeTableModel(String[] headers,
+ protected AbstractTreeTableModel(String[] headers,
Functor[] readFunctors,
Functor[] writeFunctors,
Class>[] editorClasses) {
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledChoice.java b/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledChoice.java
index 0dc92f19c3a..3df876004a4 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledChoice.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledChoice.java
@@ -23,7 +23,6 @@
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import javax.swing.JButton;
@@ -112,7 +111,7 @@ public JLabeledChoice(String pLabel, String[] items, boolean editable, boolean w
*/
@Override
public List getComponentList() {
- List comps = new LinkedList<>();
+ List comps = new ArrayList<>();
comps.add(mLabel);
comps.add(choiceList);
return comps;
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextArea.java b/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextArea.java
index 9cbaaa0827b..092b0508b2e 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextArea.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextArea.java
@@ -21,7 +21,6 @@
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import javax.swing.JComponent;
@@ -92,7 +91,7 @@ public JLabeledTextArea(String pLabel, Document docModel) {
*/
@Override
public List getComponentList() {
- List comps = new LinkedList<>();
+ List comps = new ArrayList<>();
comps.add(mLabel);
comps.add(mTextArea);
return comps;
diff --git a/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextField.java b/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextField.java
index dea4c7e0d70..d7f4e5c090c 100644
--- a/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextField.java
+++ b/src/jorphan/src/main/java/org/apache/jorphan/gui/JLabeledTextField.java
@@ -22,7 +22,6 @@
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.ArrayList;
-import java.util.LinkedList;
import java.util.List;
import javax.swing.JComponent;
@@ -115,7 +114,7 @@ public JLabeledTextField(String pLabel, int size, Color bk, boolean editable) {
*/
@Override
public List getComponentList() {
- List