svn commit: r1823932 - in /jmeter/trunk: ./ src/components/org/apache/jmeter/visualizers/ src/core/org/apache/jmeter/reporters/ src/protocol/http/org/apache/jmeter/protocol/http/proxy/ src/protocol/ht
Author: fschumacher Date: Mon Feb 12 10:08:48 2018 New Revision: 1823932 URL: http://svn.apache.org/viewvc?rev=1823932&view=rev Log: Get down to a maximum length of 170 chars Part of #358 on github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/checkstyle.xml jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/Proxy.java jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/util/accesslog/LogFilter.java jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java jmeter/trunk/test/src/org/apache/jmeter/testbeans/gui/PackageTest.java Modified: jmeter/trunk/checkstyle.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/checkstyle.xml?rev=1823932&r1=1823931&r2=1823932&view=diff == --- jmeter/trunk/checkstyle.xml (original) +++ jmeter/trunk/checkstyle.xml Mon Feb 12 10:08:48 2018 @@ -170,7 +170,7 @@ - + Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1823932&r1=1823931&r2=1823932&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Mon Feb 12 10:08:48 2018 @@ -264,13 +264,38 @@ public class StatGraphVisualizer extends public StatGraphVisualizer() { super(); model = createObjectTableModel(); -eltList.add(new BarGraph(JMeterUtils.getResString("average"), true, new Color(202, 0, 0))); -eltList.add(new BarGraph(JMeterUtils.getResString("aggregate_report_median"), false, new Color(49, 49, 181))); -eltList.add(new BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct1_line"),new Object[]{PCT1_LABEL}), false, new Color(42, 121, 42))); -eltList.add(new BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct2_line"),new Object[]{PCT2_LABEL}), false, new Color(242, 226, 8))); -eltList.add(new BarGraph(MessageFormat.format(JMeterUtils.getResString("aggregate_report_xx_pct3_line"),new Object[]{PCT3_LABEL}), false, new Color(202, 10 , 232))); -eltList.add(new BarGraph(JMeterUtils.getResString("aggregate_report_min"), false, Color.LIGHT_GRAY)); -eltList.add(new BarGraph(JMeterUtils.getResString("aggregate_report_max"), false, Color.DARK_GRAY)); +eltList.add(new BarGraph(JMeterUtils.getResString("average"), true, +new Color(202, 0, 0))); +eltList.add(new BarGraph( +JMeterUtils.getResString("aggregate_report_median"), false, +new Color(49, 49, 181))); +eltList.add( +new BarGraph( +MessageFormat.format( +JMeterUtils.getResString( +"aggregate_report_xx_pct1_line"), +new Object[] { PCT1_LABEL }), +false, new Color(42, 121, 42))); +eltList.add( +new BarGraph( +MessageFormat.format( +JMeterUtils.getResString( +"aggregate_report_xx_pct2_line"), +new Object[] { PCT2_LABEL }), +false, new Color(242, 226, 8))); +eltList.add( +new BarGraph( +MessageFormat.format( +JMeterUtils.getResString( +"aggregate_report_xx_pct3_line"), +new Object[] { PCT3_LABEL }), +false, new Color(202, 10, 232))); +eltList.add( +new BarGraph(JMeterUtils.getResString("aggregate_report_min"), +false, Color.LIGHT_GRAY)); +eltList.add( +new BarGraph(JMeterUtils.getResString("aggregate_report_max"), +false, Color.DARK_GRAY)); clearData(); init(); } Modified: jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/reporters/Summariser.java?rev=1823932&r1=1823931&r2=1823932&view=diff == --- jmeter/trunk
svn commit: r1823933 - /jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java
Author: fschumacher Date: Mon Feb 12 10:11:25 2018 New Revision: 1823933 URL: http://svn.apache.org/viewvc?rev=1823933&view=rev Log: Use try-with construct and get rid of call to deprecated method Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java?rev=1823933&r1=1823932&r2=1823933&view=diff == --- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java Mon Feb 12 10:11:25 2018 @@ -33,7 +33,6 @@ import java.util.Properties; import java.util.TreeSet; import java.util.Vector; -import org.apache.commons.io.IOUtils; import org.apache.jmeter.junit.JMeterTestCaseJUnit; import org.apache.jmeter.util.JMeterUtils; import org.slf4j.Logger; @@ -377,13 +376,9 @@ public class TestHTMLParser extends JMet log.debug("file {}", file); File f = findTestFile(file); byte[] buffer = new byte[(int) f.length()]; -InputStream is = null; -try { -is = new FileInputStream(f); +try (InputStream is = new FileInputStream(f)){ int len = is.read(buffer); assertEquals(len, buffer.length); -} finally { -IOUtils.closeQuietly(is); } Iterator result; if (c == null) {
svn commit: r1823934 - /jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java
Author: fschumacher Date: Mon Feb 12 10:14:13 2018 New Revision: 1823934 URL: http://svn.apache.org/viewvc?rev=1823934&view=rev Log: Correct indentation (was four characters off) Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java?rev=1823934&r1=1823933&r2=1823934&view=diff == --- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java Mon Feb 12 10:14:13 2018 @@ -56,382 +56,383 @@ public class TestHTMLParser extends JMet public TestHTMLParser(String arg0) { super(arg0); } -private String parserName; -private int testNumber = 0; +private String parserName; +private int testNumber = 0; -public TestHTMLParser(String name, int test) { -super(name); -testNumber = test; -} -public TestHTMLParser(String name, String parser, int test) { -super(name); -testNumber = test; -parserName = parser; -} +public TestHTMLParser(String name, int test) { +super(name); +testNumber = test; +} -private static class StaticTestClass // Can't instantiate -{ -private StaticTestClass() { -} -} +public TestHTMLParser(String name, String parser, int test) { +super(name); +testNumber = test; +parserName = parser; +} -private class TestClass // Can't instantiate -{ -private TestClass() { -} +private static class StaticTestClass // Can't instantiate +{ +private StaticTestClass() { } +} -private static class TestData { -private String fileName; +private class TestClass // Can't instantiate +{ +private TestClass() { +} +} -private String baseURL; +private static class TestData { +private String fileName; -private String expectedSet; +private String baseURL; -private String expectedList; +private String expectedSet; -public String userAgent; - -/** - * - * @param htmlFileName HTML File with content - * @param baseUrl Base URL - * @param expectedSet Set of expected URLs - * @param expectedList List of expected URLs - * @param userAgent User Agent - */ -private TestData(String htmlFileName, String baseUrl, String expectedSet, String expectedList) { -this(htmlFileName, baseUrl, expectedList, expectedList, DEFAULT_UA); -} -/** - * - * @param htmlFileName HTML File with content - * @param baseUrl Base URL - * @param expectedSet Set of expected URLs - * @param expectedList List of expected URLs - * @param userAgent User Agent - */ -private TestData(String htmlFileName, String baseUrl, String expectedSet, String expectedList, String userAgent) { -this.fileName = htmlFileName; -this.baseURL = baseUrl; -this.expectedSet = expectedSet; -this.expectedList = expectedList; -this.userAgent = userAgent; -} +private String expectedList; +public String userAgent; + +/** + * + * @param htmlFileName HTML File with content + * @param baseUrl Base URL + * @param expectedSet Set of expected URLs + * @param expectedList List of expected URLs + * @param userAgent User Agent + */ +private TestData(String htmlFileName, String baseUrl, String expectedSet, String expectedList) { +this(htmlFileName, baseUrl, expectedList, expectedList, DEFAULT_UA); +} +/** + * + * @param htmlFileName HTML File with content + * @param baseUrl Base URL + * @param expectedSet Set of expected URLs + * @param expectedList List of expected URLs + * @param userAgent User Agent + */ +private TestData(String htmlFileName, String baseUrl, String expectedSet, String expectedList, String userAgent) { +this.fileName = htmlFileName; +this.baseURL = baseUrl; +this.expectedSet = expectedSet; +this.expectedList = expectedList; +this.userAgent = userAgent; } - -private static final String DEFAULT_JMETER_PARSER
svn commit: r1823937 - /jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java
Author: fschumacher Date: Mon Feb 12 10:24:58 2018 New Revision: 1823937 URL: http://svn.apache.org/viewvc?rev=1823937&view=rev Log: Use try-with syntax, convert to stream usage and return early when no file was given. Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java Modified: jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java?rev=1823937&r1=1823936&r2=1823937&view=diff == --- jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java (original) +++ jmeter/trunk/test/src/org/apache/jmeter/protocol/http/parser/TestHTMLParser.java Mon Feb 12 10:24:58 2018 @@ -26,12 +26,14 @@ import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Properties; import java.util.TreeSet; import java.util.Vector; +import java.util.stream.Collectors; import org.apache.jmeter.junit.JMeterTestCaseJUnit; import org.apache.jmeter.util.JMeterUtils; @@ -423,16 +425,12 @@ public class TestHTMLParser extends JMet // Get expected results as a List private static List getFile(String file) throws Exception { -ArrayList al = new ArrayList<>(); -if (file != null && file.length() > 0) { -BufferedReader br = new BufferedReader(new FileReader(findTestFile(file))); -String line = br.readLine(); -while (line != null) { -al.add(line); -line = br.readLine(); -} -br.close(); +if (file == null || file.isEmpty()) { +return Collections.emptyList(); +} +try (FileReader fr = new FileReader(findTestFile(file)); +BufferedReader br = new BufferedReader(fr)) { +return br.lines().collect(Collectors.toList()); } -return al; } }
svn commit: r1823938 - /jmeter/trunk/bin/jmeter
Author: pmouawad Date: Mon Feb 12 10:28:11 2018 New Revision: 1823938 URL: http://svn.apache.org/viewvc?rev=1823938&view=rev Log: Fix typo Modified: jmeter/trunk/bin/jmeter Modified: jmeter/trunk/bin/jmeter URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter?rev=1823938&r1=1823937&r2=1823938&view=diff == --- jmeter/trunk/bin/jmeter (original) +++ jmeter/trunk/bin/jmeter Mon Feb 12 10:28:11 2018 @@ -39,7 +39,7 @@ ## ## HEAP (Optional) Java runtime options for memory management ##used when JMeter is started. -##Defaults to "-Xms1g -Xmx1g -X:MaxMetaspaceSize=256m" +##Defaults to "-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" ## ## JMETER_HOME (Optional) May point to your JMeter install dir. If empty ##it will be set relativ to this script.
svn commit: r1823940 - in /jmeter/trunk: ./ src/components/org/apache/jmeter/visualizers/ src/components/org/apache/jmeter/visualizers/backend/ src/core/org/apache/jmeter/engine/ src/core/org/apache/j
Author: fschumacher Date: Mon Feb 12 10:48:11 2018 New Revision: 1823940 URL: http://svn.apache.org/viewvc?rev=1823940&view=rev Log: Get down to a maximum length of 165 chars Part of #358 on github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/checkstyle.xml jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/BackendListenerGui.java jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java jmeter/trunk/src/jorphan/org/apache/jorphan/exec/SystemCommand.java jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/config/MultipartUrlConfig.java jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/control/HttpMirrorThread.java jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java jmeter/trunk/test/src/org/apache/jmeter/assertions/TestJSONPathAssertion.java jmeter/trunk/test/src/org/apache/jmeter/functions/TestDigestFunction.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManagerUrlConnection.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/PostWriterTest.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/TestHTTPSamplersAgainstHttpMirrorServer.java Modified: jmeter/trunk/checkstyle.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/checkstyle.xml?rev=1823940&r1=1823939&r2=1823940&view=diff == --- jmeter/trunk/checkstyle.xml (original) +++ jmeter/trunk/checkstyle.xml Mon Feb 12 10:48:11 2018 @@ -170,7 +170,7 @@ - + Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java?rev=1823940&r1=1823939&r2=1823940&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java Mon Feb 12 10:48:11 2018 @@ -332,10 +332,20 @@ public abstract class SamplerResultTab i setupTabPaneForAssertionResult(); StringBuilder statsBuff = new StringBuilder(100); - statsBuff.append(JMeterUtils.getResString("view_results_assertion_error")).append(assertionResult.isError()).append(NL); //$NON-NLS-1$ - statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure")).append(assertionResult.isFailure()).append(NL); //$NON-NLS-1$ - statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure_message")).append(assertionResult.getFailureMessage()).append(NL); //$NON-NLS-1$ -statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null); +statsBuff +.append(JMeterUtils +.getResString("view_results_assertion_error")) //$NON-NLS-1$ +.append(assertionResult.isError()).append(NL); +statsBuff +.append(JMeterUtils + .getResString("view_results_assertion_failure")) //$NON-NLS-1$ +.append(assertionResult.isFailure()).append(NL); +statsBuff +.append(JMeterUtils.getResString( +"view_results_assertion_failure_message")) //$NON-NLS-1$ + .append(assertionResult.getFailureMessage()).append(NL); +statsDoc.insertString(statsDoc.getLength(), +statsBuff.toString(), null); } stats.setCaretPosition(1); } catch (BadLocationException exc) { Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/BackendListenerGui.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/BackendListenerGui.java?rev=1823940&r1=1823939&r2=1823940&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/BackendListenerGui.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/BackendListenerGui.java Mon Feb 12 10:48:11 2018 @@ -245,7 +245,8 @@ public class BackendListenerGui extends classnameCombo.setSelectedItem(className); } else { log.error( -"Error setting class: '{}' in BackendListener: {}, check for a missing jar in your jmeter 'search_paths' and 'plugin
svn commit: r1823942 - /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
Author: fschumacher Date: Mon Feb 12 11:04:13 2018 New Revision: 1823942 URL: http://svn.apache.org/viewvc?rev=1823942&view=rev Log: Use string formats for log messages Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1823942&r1=1823941&r2=1823942&view=diff == --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original) +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Mon Feb 12 11:04:13 2018 @@ -246,20 +246,22 @@ public class ProxyControl extends Generi static { if (CERT_ALIAS != null) { KEYSTORE_MODE = KeystoreMode.USER_KEYSTORE; -log.info("HTTP(S) Test Script Recorder will use the keystore '"+ CERT_PATH_ABS + "' with the alias: '" + CERT_ALIAS + "'"); +log.info( +"HTTP(S) Test Script Recorder will use the keystore '{}' with the alias: '{}'", +CERT_PATH_ABS, CERT_ALIAS); } else { if (!KeyToolUtils.haveKeytool()) { KEYSTORE_MODE = KeystoreMode.NONE; } else if (USE_DYNAMIC_KEYS) { KEYSTORE_MODE = KeystoreMode.DYNAMIC_KEYSTORE; log.info( -"HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file " -+ CERT_PATH_ABS); +"HTTP(S) Test Script Recorder SSL Proxy will use keys that support embedded 3rd party resources in file {}", +CERT_PATH_ABS); } else { KEYSTORE_MODE = KeystoreMode.JMETER_KEYSTORE; log.warn( -"HTTP(S) Test Script Recorder SSL Proxy will use keys that may not work for embedded resources in file " -+ CERT_PATH_ABS); +"HTTP(S) Test Script Recorder SSL Proxy will use keys that may not work for embedded resources in file {}", +CERT_PATH_ABS); } } } @@ -653,7 +655,9 @@ public class ProxyControl extends Generi placeSampler(sampler, testElements, myTarget); } else { if(log.isDebugEnabled()) { -log.debug("Sample excluded based on url or content-type: " + result.getUrlAsString() + " - " + result.getContentType()); +log.debug( +"Sample excluded based on url or content-type: {} - {}", +result.getUrlAsString(), result.getContentType()); } notifySampleListeners = notifyChildSamplerListenersOfFilteredSamples; result.setSampleLabel("["+result.getSampleLabel()+"]"); @@ -664,9 +668,8 @@ public class ProxyControl extends Generi notifySampleListeners(new SampleEvent(result, "WorkBench")); } else { log.debug( -"Sample not delivered to Child Sampler Listener based on url or content-type: " -+ result.getUrlAsString() + " - " -+ result.getContentType()); +"Sample not delivered to Child Sampler Listener based on url or content-type: {} - {}", +result.getUrlAsString(), result.getContentType()); } } @@ -704,7 +707,7 @@ public class ProxyControl extends Generi try { authorization.setURL(sampler.getUrl().toExternalForm()); } catch (MalformedURLException e) { -log.error("Error filling url on authorization, message:"+e.getMessage(), e); +log.error("Error filling url on authorization, message: {}", e.getMessage(), e); authorization.setURL("${AUTH_BASE_URL}");//$NON-NLS-1$ } // if HEADER_AUTHORIZATION contains "Basic" @@ -774,7 +777,7 @@ public class ProxyControl extends Generi }; } catch (GeneralSecurityException e) { log.error("Problem reading root CA from keystore", e); -return new String[]{"Problem with root certificate", e.getMessage()}; +return new String[] { "Problem with root certificate", e.getMessage() }; } } return new String[0]; // should not happen @@ -823,14 +826,14 @@ public class ProxyControl extends Generi String sampleContentType = result.getC
svn commit: r1823944 - /jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java
Author: fschumacher Date: Mon Feb 12 11:17:42 2018 New Revision: 1823944 URL: http://svn.apache.org/viewvc?rev=1823944&view=rev Log: Extract common code into a private helper. Preparation to get line length down to 160 chars. In preparation for #358 on github Modified: jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java Modified: jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java?rev=1823944&r1=1823943&r2=1823944&view=diff == --- jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java (original) +++ jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java Mon Feb 12 11:17:42 2018 @@ -150,34 +150,37 @@ public class ObjectTableSorterTest { assertRowOrderAndIndexes(expected); } +private ObjectTableModel createTableModel(final String name, +final Class klass) { +return new ObjectTableModel(new String[] { name }, +new Functor[] { null }, new Functor[] { null }, +new Class[] { klass }); +} + @Test public void getDefaultComparatorForNullClass() { -ObjectTableModel model = new ObjectTableModel(new String[] { "null" }, new Functor[] { null }, new Functor[] { null }, new Class[] { null }); -ObjectTableSorter sorter = new ObjectTableSorter(model); +ObjectTableSorter sorter = new ObjectTableSorter(createTableModel("null", null)); assertThat(sorter.getValueComparator(0), is(nullValue())); } @Test public void getDefaultComparatorForStringClass() { -ObjectTableModel model = new ObjectTableModel(new String[] { "string" }, new Functor[] { null }, new Functor[] { null }, new Class[] { String.class }); -ObjectTableSorter sorter = new ObjectTableSorter(model); +ObjectTableSorter sorter = new ObjectTableSorter(createTableModel("string", String.class)); assertThat(sorter.getValueComparator(0), is(CoreMatchers.notNullValue())); } @Test public void getDefaultComparatorForIntegerClass() { -ObjectTableModel model = new ObjectTableModel(new String[] { "integer" }, new Functor[] { null }, new Functor[] { null }, new Class[] { Integer.class }); -ObjectTableSorter sorter = new ObjectTableSorter(model); +ObjectTableSorter sorter = new ObjectTableSorter(createTableModel("integer", Integer.class)); assertThat(sorter.getValueComparator(0), is(CoreMatchers.notNullValue())); } @Test public void getDefaultComparatorForObjectClass() { -ObjectTableModel model = new ObjectTableModel(new String[] { "integer" }, new Functor[] { null }, new Functor[] { null }, new Class[] { Object.class }); -ObjectTableSorter sorter = new ObjectTableSorter(model); +ObjectTableSorter sorter = new ObjectTableSorter(createTableModel("integer", Object.class)); assertThat(sorter.getValueComparator(0), is(nullValue())); }
svn commit: r1823945 - /jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java
Author: fschumacher Date: Mon Feb 12 11:18:55 2018 New Revision: 1823945 URL: http://svn.apache.org/viewvc?rev=1823945&view=rev Log: Correct typo from old code. We create a table model for objects. Modified: jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java Modified: jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java?rev=1823945&r1=1823944&r2=1823945&view=diff == --- jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java (original) +++ jmeter/trunk/test/src/org/apache/jorphan/gui/ObjectTableSorterTest.java Mon Feb 12 11:18:55 2018 @@ -180,7 +180,7 @@ public class ObjectTableSorterTest { @Test public void getDefaultComparatorForObjectClass() { -ObjectTableSorter sorter = new ObjectTableSorter(createTableModel("integer", Object.class)); +ObjectTableSorter sorter = new ObjectTableSorter(createTableModel("object", Object.class)); assertThat(sorter.getValueComparator(0), is(nullValue())); }
svn commit: r1823946 - /jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/RegExUserParameters.java
Author: fschumacher Date: Mon Feb 12 11:26:54 2018 New Revision: 1823946 URL: http://svn.apache.org/viewvc?rev=1823946&view=rev Log: Use log format strings. Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/RegExUserParameters.java Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/RegExUserParameters.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/RegExUserParameters.java?rev=1823946&r1=1823945&r2=1823946&view=diff == --- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/RegExUserParameters.java (original) +++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/modifier/RegExUserParameters.java Mon Feb 12 11:26:54 2018 @@ -67,7 +67,9 @@ public class RegExUserParameters extends Map paramMap = buildParamsMap(); if(paramMap == null || paramMap.isEmpty()){ -log.info("RegExUserParameters element:"+getName()+" => Referenced RegExp was not found, no parameter will be changed"); +log.info( +"RegExUserParameters element: {} => Referenced RegExp was not found, no parameter will be changed", +getName()); return; } @@ -82,7 +84,9 @@ public class RegExUserParameters extends arg.setValue(val); } if (log.isDebugEnabled()) { -log.debug("RegExUserParameters element:" + getName() + " => changed parameter: " + arg.getName() + " = " + arg.getValue() + ", was:" + oldValue); +log.debug( +"RegExUserParameters element: {} => changed parameter: {} = {}, was: {}", +getName(), arg.getName(), arg.getValue(), oldValue); } } }
svn commit: r1823947 - /jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java
Author: fschumacher Date: Mon Feb 12 11:45:54 2018 New Revision: 1823947 URL: http://svn.apache.org/viewvc?rev=1823947&view=rev Log: Refactor common code into private helper. As a bonus re-format a small if clause. Preparation for #358 on github. Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java?rev=1823947&r1=1823946&r2=1823947&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/RespTimeGraphVisualizer.java Mon Feb 12 11:45:54 2018 @@ -211,21 +211,21 @@ public class RespTimeGraphVisualizer ext private final JCheckBox regexpChkBox = new JCheckBox(JMeterUtils.getResString("search_text_chkbox_regexp"), true); // $NON-NLS-1$ -private final JComboBox titleFontNameList = new JComboBox<>(StatGraphProperties.getFontNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private final JComboBox titleFontNameList = new JComboBox<>(keys(StatGraphProperties.getFontNameMap())); private final JComboBox titleFontSizeList = new JComboBox<>(StatGraphProperties.getFontSize()); -private final JComboBox titleFontStyleList = new JComboBox<>(StatGraphProperties.getFontStyleMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private final JComboBox titleFontStyleList = new JComboBox<>(keys(StatGraphProperties.getFontStyleMap())); -private final JComboBox fontNameList = new JComboBox<>(StatGraphProperties.getFontNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private final JComboBox fontNameList = new JComboBox<>(keys(StatGraphProperties.getFontNameMap())); private final JComboBox fontSizeList = new JComboBox<>(StatGraphProperties.getFontSize()); -private final JComboBox fontStyleList = new JComboBox<>(StatGraphProperties.getFontStyleMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private final JComboBox fontStyleList = new JComboBox<>(keys(StatGraphProperties.getFontStyleMap())); -private final JComboBox legendPlacementList = new JComboBox<>(StatGraphProperties.getPlacementNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private final JComboBox legendPlacementList = new JComboBox<>(keys(StatGraphProperties.getPlacementNameMap())); -private final JComboBox pointShapeLine = new JComboBox<>(StatGraphProperties.getPointShapeMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private final JComboBox pointShapeLine = new JComboBox<>(keys(StatGraphProperties.getPointShapeMap())); private final JComboBox strokeWidthList = new JComboBox<>(StatGraphProperties.getStrokeWidth()); @@ -285,6 +285,10 @@ public class RespTimeGraphVisualizer ext init(); } +private String[] keys(Map map) { +return map.keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY); +} + @Override public void add(final SampleResult sampleResult) { final String sampleLabel = sampleResult.getSampleLabel(); @@ -422,7 +426,9 @@ public class RespTimeGraphVisualizer ext double valPrev = nanBegin; for (int cnt = 0; cnt < nlsize; cnt++) { int pos = idx - (nlsize - cnt); -if (pos < 0) { pos = 0; } +if (pos < 0) { +pos = 0; +} valPrev = valPrev + ((nanLast - nanBegin) / (nlsize + 2)); data[s][pos] = valPrev; }
svn commit: r1823948 - /jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
Author: fschumacher Date: Mon Feb 12 11:52:37 2018 New Revision: 1823948 URL: http://svn.apache.org/viewvc?rev=1823948&view=rev Log: Refactor common code into private helper. Preparation for #358 on github. Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1823948&r1=1823947&r2=1823948&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Mon Feb 12 11:52:37 2018 @@ -225,31 +225,34 @@ public class StatGraphVisualizer extends private JCheckBox regexpChkBox = new JCheckBox(JMeterUtils.getResString("search_text_chkbox_regexp"), true); // $NON-NLS-1$ -private JComboBox titleFontNameList = new JComboBox<>(StatGraphProperties.getFontNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox titleFontNameList = new JComboBox<>(keys(StatGraphProperties.getFontNameMap())); private JComboBox titleFontSizeList = new JComboBox<>(StatGraphProperties.getFontSize()); -private JComboBox titleFontStyleList = new JComboBox<>(StatGraphProperties.getFontStyleMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox titleFontStyleList = new JComboBox<>(keys(StatGraphProperties.getFontStyleMap())); -private JComboBox valueFontNameList = new JComboBox<>(StatGraphProperties.getFontNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox valueFontNameList = new JComboBox<>(keys(StatGraphProperties.getFontNameMap())); private JComboBox valueFontSizeList = new JComboBox<>(StatGraphProperties.getFontSize()); -private JComboBox valueFontStyleList = new JComboBox<>(StatGraphProperties.getFontStyleMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox valueFontStyleList = new JComboBox<>(keys(StatGraphProperties.getFontStyleMap())); -private JComboBox fontNameList = new JComboBox<>(StatGraphProperties.getFontNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox fontNameList = new JComboBox<>(keys(StatGraphProperties.getFontNameMap())); private JComboBox fontSizeList = new JComboBox<>(StatGraphProperties.getFontSize()); -private JComboBox fontStyleList = new JComboBox<>(StatGraphProperties.getFontStyleMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox fontStyleList = new JComboBox<>(keys(StatGraphProperties.getFontStyleMap())); -private JComboBox legendPlacementList = new JComboBox<>(StatGraphProperties.getPlacementNameMap().keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY)); +private JComboBox legendPlacementList = new JComboBox<>(keys(StatGraphProperties.getPlacementNameMap())); -private JCheckBox drawOutlinesBar = new JCheckBox(JMeterUtils.getResString("aggregate_graph_draw_outlines"), true); // Default checked // $NON-NLS-1$ +// Default checked +private JCheckBox drawOutlinesBar = new JCheckBox(JMeterUtils.getResString("aggregate_graph_draw_outlines"), true); // $NON-NLS-1$ -private JCheckBox numberShowGrouping = new JCheckBox(JMeterUtils.getResString("aggregate_graph_number_grouping"), true); // Default checked // $NON-NLS-1$ - -private JCheckBox valueLabelsVertical = new JCheckBox(JMeterUtils.getResString("aggregate_graph_value_labels_vertical"), true); // Default checked // $NON-NLS-1$ +// Default checked +private JCheckBox numberShowGrouping = new JCheckBox(JMeterUtils.getResString("aggregate_graph_number_grouping"), true); // $NON-NLS-1$ + +// Default checked +private JCheckBox valueLabelsVertical = new JCheckBox(JMeterUtils.getResString("aggregate_graph_value_labels_vertical"), true); // $NON-NLS-1$ private Color colorBarGraph = Color.YELLOW; @@ -316,7 +319,11 @@ public class StatGraphVisualizer extends null}; return result; } - + +private String[] keys(Map map) { +return map.keySet().toArray(ArrayUtils.EMPTY_STRING_ARRAY); +} + /** * @return array of String containing column names */
svn commit: r1823949 - in /jmeter/trunk: ./ src/components/org/apache/jmeter/assertions/ src/components/org/apache/jmeter/control/gui/ src/components/org/apache/jmeter/visualizers/ src/components/org/
Author: fschumacher Date: Mon Feb 12 12:00:48 2018 New Revision: 1823949 URL: http://svn.apache.org/viewvc?rev=1823949&view=rev Log: Get down to a maximum length of 160 chars Part of #358 on github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/checkstyle.xml jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java jmeter/trunk/src/components/org/apache/jmeter/visualizers/SamplerResultTab.java jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/graphite/GraphiteBackendListenerClient.java jmeter/trunk/src/components/org/apache/jmeter/visualizers/backend/graphite/PickleGraphiteMetricsSender.java jmeter/trunk/src/core/org/apache/jmeter/control/TransactionController.java jmeter/trunk/src/core/org/apache/jmeter/report/dashboard/HtmlTemplateExporter.java jmeter/trunk/src/core/org/apache/jmeter/samplers/AbstractSampleSender.java jmeter/trunk/src/core/org/apache/jmeter/util/keystore/JmeterKeyStore.java jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/DefaultSamplerCreator.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/control/TestCacheManagerBase.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/proxy/TestHttpRequestHdr.java jmeter/trunk/test/src/org/apache/jmeter/protocol/http/sampler/PostWriterTest.java jmeter/trunk/xdocs/changes.xml Modified: jmeter/trunk/checkstyle.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/checkstyle.xml?rev=1823949&r1=1823948&r2=1823949&view=diff == --- jmeter/trunk/checkstyle.xml (original) +++ jmeter/trunk/checkstyle.xml Mon Feb 12 12:00:48 2018 @@ -170,7 +170,7 @@ - + Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java?rev=1823949&r1=1823948&r2=1823949&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Mon Feb 12 12:00:48 2018 @@ -92,9 +92,10 @@ public class HTMLAssertion extends Abstr try { if (log.isDebugEnabled()) { log.debug( -"Setting up tidy... doctype: {}, errors only: {}, error threshold: {}, warning threshold: {}, html mode: {}, xhtml mode: {}, xml mode: {}.", -getDoctype(), isErrorsOnly(), getErrorThreshold(), getWarningThreshold(), isHTML(), isXHTML(), -isXML()); +"Setting up tidy... doctype: {}, errors only: {}, error threshold: {}," ++ "warning threshold: {}, html mode: {}, xhtml mode: {}, xml mode: {}.", +getDoctype(), isErrorsOnly(), getErrorThreshold(), +getWarningThreshold(), isHTML(), isXHTML(), isXML()); } tidy = new Tidy(); tidy.setInputEncoding(StandardCharsets.UTF_8.name()); Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java?rev=1823949&r1=1823948&r2=1823949&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Mon Feb 12 12:00:48 2018 @@ -462,7 +462,8 @@ public class ModuleControllerGui extends private static final long serialVersionUID = 1129098620102526299L; /** - * @see javax.swing.tree.DefaultTreeCellRenderer#getTreeCellRendererComponent(javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean) + * @see javax.swing.tree.DefaultTreeCellRenderer#getTreeCellRendererComponent(javax.swing.JTree, + * java.lang.Object, boolean, boolean, boolean, int, boolean) */ @Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/RenderAsJSON.java?rev=1823949&r1=1823948&r2=1823949&view=diff == --- jmeter/t
svn commit: r1823950 - /jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
Author: fschumacher Date: Mon Feb 12 12:06:38 2018 New Revision: 1823950 URL: http://svn.apache.org/viewvc?rev=1823950&view=rev Log: Give the colors names. Part of #358 on github Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1823950&r1=1823949&r2=1823950&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Mon Feb 12 12:06:38 2018 @@ -267,32 +267,38 @@ public class StatGraphVisualizer extends public StatGraphVisualizer() { super(); model = createObjectTableModel(); +final Color red = new Color(202, 0, 0); +final Color blue = new Color(49, 49, 181); +final Color green = new Color(42, 121, 42); +final Color yellow = new Color(242, 226, 8); +final Color purple = new Color(202, 10, 232); eltList.add(new BarGraph(JMeterUtils.getResString("average"), true, -new Color(202, 0, 0))); +red)); eltList.add(new BarGraph( JMeterUtils.getResString("aggregate_report_median"), false, -new Color(49, 49, 181))); +blue)); eltList.add( new BarGraph( MessageFormat.format( JMeterUtils.getResString( "aggregate_report_xx_pct1_line"), new Object[] { PCT1_LABEL }), -false, new Color(42, 121, 42))); +false, green)); eltList.add( new BarGraph( MessageFormat.format( JMeterUtils.getResString( "aggregate_report_xx_pct2_line"), new Object[] { PCT2_LABEL }), -false, new Color(242, 226, 8))); +false, yellow)); + eltList.add( new BarGraph( MessageFormat.format( JMeterUtils.getResString( "aggregate_report_xx_pct3_line"), new Object[] { PCT3_LABEL }), -false, new Color(202, 10, 232))); +false, purple)); eltList.add( new BarGraph(JMeterUtils.getResString("aggregate_report_min"), false, Color.LIGHT_GRAY));
svn commit: r1823951 - /jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java
Author: fschumacher Date: Mon Feb 12 12:07:20 2018 New Revision: 1823951 URL: http://svn.apache.org/viewvc?rev=1823951&view=rev Log: Directly return result. Part of #358 Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java?rev=1823951&r1=1823950&r2=1823951&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatGraphVisualizer.java Mon Feb 12 12:07:20 2018 @@ -310,7 +310,7 @@ public class StatGraphVisualizer extends } static final Object[][] getColumnsMsgParameters() { -Object[][] result = { null, +return new Object[][] { null, null, null, null, @@ -323,7 +323,6 @@ public class StatGraphVisualizer extends null, null, null}; -return result; } private String[] keys(Map map) {
svn commit: r1823954 - /jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContextService.java
Author: fschumacher Date: Mon Feb 12 12:19:38 2018 New Revision: 1823954 URL: http://svn.apache.org/viewvc?rev=1823954&view=rev Log: Use new ThreadLocal#withInitial. Part of (or rather hidden in) #358 Modified: jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContextService.java Modified: jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContextService.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContextService.java?rev=1823954&r1=1823953&r2=1823954&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContextService.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterContextService.java Mon Feb 12 12:19:38 2018 @@ -25,12 +25,7 @@ import org.apache.jmeter.util.JMeterUtil * Keeps track of active and total thread counts. */ public final class JMeterContextService { -private static final ThreadLocal threadContext = new ThreadLocal() { -@Override -public JMeterContext initialValue() { -return new JMeterContext(); -} -}; +private static final ThreadLocal threadContext = ThreadLocal.withInitial(JMeterContext::new); //@GuardedBy(JMeterContextService.class) private static long testStart = 0;
svn commit: r1823955 - /jmeter/trunk/src/functions/org/apache/jmeter/functions/TimeShift.java
Author: fschumacher Date: Mon Feb 12 12:24:10 2018 New Revision: 1823955 URL: http://svn.apache.org/viewvc?rev=1823955&view=rev Log: Fix Typo, use method reference and re-format a log-message. Part of #358 Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/TimeShift.java Modified: jmeter/trunk/src/functions/org/apache/jmeter/functions/TimeShift.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/functions/org/apache/jmeter/functions/TimeShift.java?rev=1823955&r1=1823954&r2=1823955&view=diff == --- jmeter/trunk/src/functions/org/apache/jmeter/functions/TimeShift.java (original) +++ jmeter/trunk/src/functions/org/apache/jmeter/functions/TimeShift.java Mon Feb 12 12:24:10 2018 @@ -51,7 +51,7 @@ import com.github.benmanes.caffeine.cach * * Parameters: - format date @see * https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html - * (optional - defaults to epoch time in millisecond) - date to shift formated + * (optional - defaults to epoch time in millisecond) - date to shift formatted * as first param (optional - defaults now) - amount of (seconds, minutes, * hours, days ) to add (optional - default nothing is add ) - a string of the locale for the format * ( optional ) - variable name ( optional ) @@ -143,10 +143,10 @@ public class TimeShift extends AbstractF if (!StringUtils.isEmpty(format)) { try { LocaleFormatObject lfo = new LocaleFormatObject(format, locale); -formatter = dateTimeFormatterCache.get(lfo, key -> createFormatter((LocaleFormatObject) key)); +formatter = dateTimeFormatterCache.get(lfo, this::createFormatter); } catch (IllegalArgumentException ex) { -log.error( -"Format date pattern '{}' is invalid (see https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)", +log.error("Format date pattern '{}' is invalid " ++ "(see https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)", format, ex); // $NON-NLS-1$ return ""; }
svn commit: r1823956 - /jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
Author: milamber Date: Mon Feb 12 12:27:49 2018 New Revision: 1823956 URL: http://svn.apache.org/viewvc?rev=1823956&view=rev Log: Fix little issue with default French work (défaut) Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1823956&r1=1823955&r2=1823956&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original) +++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Mon Feb 12 12:27:49 2018 @@ -569,7 +569,7 @@ jsonpath_tester_button_test=Tester jsonpath_tester_field=Expression JSON Path jsonpath_tester_title=Testeur JSON Path jsonpp_compute_concat=Calculer la variable de concat\u00E9nation (suffix _ALL)\: -jsonpp_default_values=Valeur par d\u00E9fault\: +jsonpp_default_values=Valeur par d\u00E9faut\: jsonpp_error_number_arguments_mismatch_error=D\u00E9calage entre nombre de variables, expressions et valeurs par d\u00E9faut jsonpp_json_path_expressions=Expressions JSON Path\: jsonpp_match_numbers=R\u00E9cup\u00E9rer la Ni\u00E8me corresp. (0 \: Al\u00E9atoire)\:
svn commit: r1823957 - in /jmeter/trunk: src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/render/MapMessageRenderer.java xdocs/changes.xml
Author: fschumacher Date: Mon Feb 12 12:40:51 2018 New Revision: 1823957 URL: http://svn.apache.org/viewvc?rev=1823957&view=rev Log: No need to explicitly create an array for the arguments. This is the last part of the Checkstyle pull requests #358, #365, #366 and #375. It closes #366 and #358 on github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/render/MapMessageRenderer.java jmeter/trunk/xdocs/changes.xml Modified: jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/render/MapMessageRenderer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/render/MapMessageRenderer.java?rev=1823957&r1=1823956&r2=1823957&view=diff == --- jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/render/MapMessageRenderer.java (original) +++ jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/render/MapMessageRenderer.java Mon Feb 12 12:40:51 2018 @@ -52,8 +52,8 @@ public class MapMessageRenderer implemen obj = value; } else { try { -Class clazz = Class.forName(type); -Method method = clazz.getMethod("valueOf", new Class[]{String.class}); +Class clazz = Class.forName(type); +Method method = clazz.getMethod("valueOf", String.class); obj = method.invoke(clazz, value); } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { Modified: jmeter/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1823957&r1=1823956&r2=1823957&view=diff == --- jmeter/trunk/xdocs/changes.xml [utf-8] (original) +++ jmeter/trunk/xdocs/changes.xml [utf-8] Mon Feb 12 12:40:51 2018 @@ -118,7 +118,7 @@ Summary Non-functional changes -358365375Updated to latest checkstyle (v8.8). Expanded Checkstyle to files +358365366375Updated to latest checkstyle (v8.8). Expanded Checkstyle to files in src and test; fixed newly checked files. Based on contribution by Graham Russell (graham at ham1.co.uk) 62095Correct description for right boundary parameter in Boundary Extractor. Contributed by orimarko (orimarko at gmail.com)
svn commit: r1823958 - /jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java
Author: fschumacher Date: Mon Feb 12 12:43:40 2018 New Revision: 1823958 URL: http://svn.apache.org/viewvc?rev=1823958&view=rev Log: spacepolice. Closes #358 Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java?rev=1823958&r1=1823957&r2=1823958&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Mon Feb 12 12:43:40 2018 @@ -140,7 +140,7 @@ public class ModuleControllerGui extends @Override public void setSelectionPaths(TreePath[] pPaths) { DefaultMutableTreeNode lastSelected = (DefaultMutableTreeNode) pPaths[pPaths.length-1].getLastPathComponent(); -if(isSelectedPathAllowed(lastSelected)) { +if (isSelectedPathAllowed(lastSelected)) { super.setSelectionPaths(pPaths); } } @@ -148,7 +148,7 @@ public class ModuleControllerGui extends @Override public void addSelectionPath(TreePath path) { DefaultMutableTreeNode lastSelected = (DefaultMutableTreeNode) path.getLastPathComponent(); -if(isSelectedPathAllowed(lastSelected)) { +if (isSelectedPathAllowed(lastSelected)) { super.addSelectionPath(path); } } @@ -156,7 +156,7 @@ public class ModuleControllerGui extends @Override public void addSelectionPaths(TreePath[] paths) { DefaultMutableTreeNode lastSelected = (DefaultMutableTreeNode) paths[paths.length-1].getLastPathComponent(); -if(isSelectedPathAllowed(lastSelected)) { +if (isSelectedPathAllowed(lastSelected)) { super.addSelectionPaths(paths); } } @@ -375,7 +375,7 @@ public class ModuleControllerGui extends //expand Module to run tree to selected node and set selection path to it this.focusSelectedOnTree(selected); } -if(!hasAtLeastOneController) { +if (!hasAtLeastOneController) { warningLabel.setText(JMeterUtils.getResString("module_controller_warning_no_controller")); warningLabel.setVisible(true); }
svn commit: r1823994 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
Author: fschumacher Date: Mon Feb 12 16:02:18 2018 New Revision: 1823994 URL: http://svn.apache.org/viewvc?rev=1823994&view=rev Log: Extract lengthy if statement in private method. Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=1823994&r1=1823993&r2=1823994&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Mon Feb 12 16:02:18 2018 @@ -294,31 +294,7 @@ public class ResponseAssertion extends A response.setSuccessful(true);// Allow testing of failure codes } -String toCheck; // The string to check (Url or data) -// What are we testing against? -if (isScopeVariable()){ -toCheck = getThreadContext().getVariables().get(getVariableName()); -} else if (isTestFieldResponseData()) { -toCheck = response.getResponseDataAsString(); // (bug25052) -} else if (isTestFieldResponseDataAsDocument()) { -toCheck = Document.getTextFromDocument(response.getResponseData()); -} else if (isTestFieldResponseCode()) { -toCheck = response.getResponseCode(); -} else if (isTestFieldResponseMessage()) { -toCheck = response.getResponseMessage(); -} else if (isTestFieldRequestHeaders()) { -toCheck = response.getRequestHeaders(); -} else if (isTestFieldRequestData()) { -toCheck = response.getSamplerData(); -} else if (isTestFieldResponseHeaders()) { -toCheck = response.getResponseHeaders(); -} else { // Assume it is the URL -toCheck = ""; -final URL url = response.getURL(); -if (url != null){ -toCheck = url.toString(); -} -} +String toCheck = getStringToCheck(response); result.setFailure(false); result.setError(false); @@ -407,6 +383,35 @@ public class ResponseAssertion extends A return result; } +private String getStringToCheck(SampleResult response) { +String toCheck; // The string to check (Url or data) +// What are we testing against? +if (isScopeVariable()){ +toCheck = getThreadContext().getVariables().get(getVariableName()); +} else if (isTestFieldResponseData()) { +toCheck = response.getResponseDataAsString(); // (bug25052) +} else if (isTestFieldResponseDataAsDocument()) { +toCheck = Document.getTextFromDocument(response.getResponseData()); +} else if (isTestFieldResponseCode()) { +toCheck = response.getResponseCode(); +} else if (isTestFieldResponseMessage()) { +toCheck = response.getResponseMessage(); +} else if (isTestFieldRequestHeaders()) { +toCheck = response.getRequestHeaders(); +} else if (isTestFieldRequestData()) { +toCheck = response.getSamplerData(); +} else if (isTestFieldResponseHeaders()) { +toCheck = response.getResponseHeaders(); +} else { // Assume it is the URL +toCheck = ""; +final URL url = response.getURL(); +if (url != null){ +toCheck = url.toString(); +} +} +return toCheck; +} + /** * Generate the failure reason from the TestType *
svn commit: r1823995 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
Author: fschumacher Date: Mon Feb 12 16:05:16 2018 New Revision: 1823995 URL: http://svn.apache.org/viewvc?rev=1823995&view=rev Log: Spacepolice Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=1823995&r1=1823994&r2=1823995&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Mon Feb 12 16:05:16 2018 @@ -311,7 +311,7 @@ public class ResponseAssertion extends A if (notTest) { // Not should always succeed against an empty result return result; } -if(log.isDebugEnabled()) { +if (log.isDebugEnabled()) { log.debug("Not checking empty response field in: {}", response.getSampleLabel()); } return result.setResultForNull(); @@ -352,7 +352,7 @@ public class ResponseAssertion extends A log.debug("Failed: {}", stringPattern); result.setFailure(true); String customMsg = getCustomFailureMessage(); -if(StringUtils.isEmpty(customMsg)) { +if (StringUtils.isEmpty(customMsg)) { result.setFailureMessage(getFailText(stringPattern,toCheck)); } else { result.setFailureMessage(customMsg); @@ -369,7 +369,7 @@ public class ResponseAssertion extends A } result.setFailure(true); String customMsg = getCustomFailureMessage(); -if(StringUtils.isEmpty(customMsg)) { +if (StringUtils.isEmpty(customMsg)) { result.setFailureMessage(errorMsg.toString()); } else { result.setFailureMessage(customMsg); @@ -391,7 +391,7 @@ public class ResponseAssertion extends A } else if (isTestFieldResponseData()) { toCheck = response.getResponseDataAsString(); // (bug25052) } else if (isTestFieldResponseDataAsDocument()) { -toCheck = Document.getTextFromDocument(response.getResponseData()); +toCheck = Document.getTextFromDocument(response.getResponseData()); } else if (isTestFieldResponseCode()) { toCheck = response.getResponseCode(); } else if (isTestFieldResponseMessage()) { @@ -545,7 +545,7 @@ public class ResponseAssertion extends A for (int i = 0; i < pad.capacity(); i++){ pad.append(' '); } - + if (recDeltaSeq.length() > compDeltaSeq.length()){ compDeltaSeq += pad.toString(); } else {
svn commit: r1823996 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
Author: fschumacher Date: Mon Feb 12 16:07:48 2018 New Revision: 1823996 URL: http://svn.apache.org/viewvc?rev=1823996&view=rev Log: Reduce scope of variables Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=1823996&r1=1823995&r2=1823996&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Mon Feb 12 16:07:48 2018 @@ -21,6 +21,7 @@ package org.apache.jmeter.assertions; import java.io.Serializable; import java.net.URL; import java.util.ArrayList; +import java.util.List; import org.apache.commons.lang3.StringUtils; import org.apache.jmeter.assertions.gui.AssertionGui; @@ -317,11 +318,11 @@ public class ResponseAssertion extends A return result.setResultForNull(); } -boolean hasTrue = false; -ArrayList allCheckMessage = new ArrayList<>(); try { // Get the Matcher for this thread Perl5Matcher localMatcher = JMeterUtils.getMatcher(); +boolean hasTrue = false; +List allCheckMessage = new ArrayList<>(); for (JMeterProperty jMeterProperty : getTestStrings()) { String stringPattern = jMeterProperty.getStringValue(); Pattern pattern = null;
svn commit: r1823997 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
Author: fschumacher Date: Mon Feb 12 16:08:28 2018 New Revision: 1823997 URL: http://svn.apache.org/viewvc?rev=1823997&view=rev Log: Spacepolice Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=1823997&r1=1823996&r2=1823997&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Mon Feb 12 16:08:28 2018 @@ -343,7 +343,7 @@ public class ResponseAssertion extends A if (orTest) { if (!pass) { log.debug("Failed: {}", stringPattern); - allCheckMessage.add(getFailText(stringPattern,toCheck)); +allCheckMessage.add(getFailText(stringPattern, toCheck)); } else { hasTrue=true; break; @@ -354,7 +354,7 @@ public class ResponseAssertion extends A result.setFailure(true); String customMsg = getCustomFailureMessage(); if (StringUtils.isEmpty(customMsg)) { - result.setFailureMessage(getFailText(stringPattern,toCheck)); + result.setFailureMessage(getFailText(stringPattern, toCheck)); } else { result.setFailureMessage(customMsg); }
svn commit: r1824002 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java
Author: fschumacher Date: Mon Feb 12 16:13:56 2018 New Revision: 1824002 URL: http://svn.apache.org/viewvc?rev=1824002&view=rev Log: Use java 8 stream features to collect data Part of #356 on Github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java?rev=1824002&r1=1824001&r2=1824002&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/ResponseAssertion.java Mon Feb 12 16:13:56 2018 @@ -22,6 +22,7 @@ import java.io.Serializable; import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.apache.jmeter.assertions.gui.AssertionGui; @@ -364,14 +365,10 @@ public class ResponseAssertion extends A } } if (orTest && !hasTrue){ -StringBuilder errorMsg = new StringBuilder(); -for(String tmp : allCheckMessage){ -errorMsg.append(tmp).append('\t'); -} result.setFailure(true); String customMsg = getCustomFailureMessage(); if (StringUtils.isEmpty(customMsg)) { -result.setFailureMessage(errorMsg.toString()); + result.setFailureMessage(allCheckMessage.stream().collect(Collectors.joining("\t", "", "\t"))); } else { result.setFailureMessage(customMsg); }
svn commit: r1824003 - /jmeter/trunk/src/core/org/apache/jmeter/gui/UndoHistory.java
Author: fschumacher Date: Mon Feb 12 16:18:14 2018 New Revision: 1824003 URL: http://svn.apache.org/viewvc?rev=1824003&view=rev Log: Use Deque instead of stack Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/UndoHistory.java Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/UndoHistory.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/UndoHistory.java?rev=1824003&r1=1824002&r2=1824003&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/gui/UndoHistory.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/UndoHistory.java Mon Feb 12 16:18:14 2018 @@ -19,9 +19,10 @@ package org.apache.jmeter.gui; import java.io.Serializable; +import java.util.ArrayDeque; import java.util.ArrayList; +import java.util.Deque; import java.util.List; -import java.util.Stack; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; @@ -65,7 +66,7 @@ public class UndoHistory implements Tree private final UndoManager manager = new UndoManager(); -private final Stack transactions = new Stack<>(); +private final Deque transactions = new ArrayDeque<>(); private UndoHistoryItem lastKnownState = null;
svn commit: r1824005 - /jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java
Author: fschumacher Date: Mon Feb 12 16:22:06 2018 New Revision: 1824005 URL: http://svn.apache.org/viewvc?rev=1824005&view=rev Log: Use lambda instead of subclassing Thread. Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java?rev=1824005&r1=1824004&r2=1824005&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/engine/RemoteJMeterEngineImpl.java Mon Feb 12 16:22:06 2018 @@ -186,13 +186,10 @@ public final class RemoteJMeterEngineImp public void rexit() throws RemoteException { log.info("Exiting"); // Bug 59400 - allow rexit() to return -Thread et = new Thread() { -@Override -public void run() { -log.info("Stopping the backing engine"); -backingEngine.exit(); -} -}; +Thread et = new Thread(() -> { +log.info("Stopping the backing engine"); +backingEngine.exit(); +}); et.setDaemon(false); // Tidy up any objects we created Registry reg = LocateRegistry.getRegistry(
svn commit: r1824007 - /jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java
Author: fschumacher Date: Mon Feb 12 16:25:32 2018 New Revision: 1824007 URL: http://svn.apache.org/viewvc?rev=1824007&view=rev Log: Simplify logic (re-arrange it) Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java Modified: jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java?rev=1824007&r1=1824006&r2=1824007&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java Mon Feb 12 16:25:32 2018 @@ -153,12 +153,7 @@ public class ModuleController extends Ge * @return true if replacement occurred at the time method is called */ private boolean hasReplacementOccured() { -if(GuiPackage.getInstance() != null) { -// GUI Mode -return isRunningVersion(); -} else { -return true; -} +return GuiPackage.getInstance() == null || isRunningVersion(); } private void traverse(JMeterTreeNode node, List nodePath, int level) {
svn commit: r1824008 - /jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java
Author: fschumacher Date: Mon Feb 12 16:27:05 2018 New Revision: 1824008 URL: http://svn.apache.org/viewvc?rev=1824008&view=rev Log: No need to cast here Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java Modified: jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java?rev=1824008&r1=1824007&r2=1824008&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java Mon Feb 12 16:27:05 2018 @@ -115,7 +115,7 @@ public class ModuleController extends Ge public List getNodePath() { JMeterProperty prop = getProperty(NODE_PATH); if (!(prop instanceof NullProperty)) { -return (List) ((CollectionProperty) prop).getObjectValue(); +return (List) prop.getObjectValue(); } return null; }
svn commit: r1824010 - /jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java
Author: fschumacher Date: Mon Feb 12 16:30:29 2018 New Revision: 1824010 URL: http://svn.apache.org/viewvc?rev=1824010&view=rev Log: Use System.arraycopy Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java?rev=1824010&r1=1824009&r2=1824010&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Mon Feb 12 16:30:29 2018 @@ -346,9 +346,7 @@ public class ModuleControllerGui extends TreeNode[] filteredPath = new TreeNode[path.length-1]; //ignore first element of path - WorkBench, (why WorkBench is appearing in the path ???) -for (int i = 1; i < path.length; i++){ -filteredPath[i-1] = path[i]; -} +System.arraycopy(path, 1, filteredPath, 0, path.length - 1); DefaultMutableTreeNode root = (DefaultMutableTreeNode) moduleToRunTreeNodes.getModel().getRoot(); //treepath of test plan tree and module to run tree cannot be compared directly - moduleToRunTreeModel.getPathToRoot()
svn commit: r1824012 - /jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java
Author: fschumacher Date: Mon Feb 12 16:34:21 2018 New Revision: 1824012 URL: http://svn.apache.org/viewvc?rev=1824012&view=rev Log: Name part of the logic by assigning it to a variable Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Modified: jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java?rev=1824012&r1=1824011&r2=1824012&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/control/gui/ModuleControllerGui.java Mon Feb 12 16:34:21 2018 @@ -403,10 +403,11 @@ public class ModuleControllerGui extends DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(cur); parent.add(newNode); buildTreeNodeModel(cur, level + 1, newNode); +final boolean isController = te instanceof Controller +&& !(te instanceof ModuleController +|| te instanceof AbstractThreadGroup); hasAtLeastOneController = -hasAtLeastOneController || ( -te instanceof Controller && -!(te instanceof ModuleController || te instanceof AbstractThreadGroup)); +hasAtLeastOneController || isController; } else if (te instanceof TestPlan) { ((DefaultMutableTreeNode) moduleToRunTreeModel.getRoot()) .setUserObject(cur);
svn commit: r1824015 - in /jmeter/trunk/src: components/org/apache/jmeter/extractor/ core/org/apache/jmeter/control/ core/org/apache/jmeter/engine/ core/org/apache/jmeter/gui/action/ core/org/apache/j
Author: fschumacher Date: Mon Feb 12 16:42:16 2018 New Revision: 1824015 URL: http://svn.apache.org/viewvc?rev=1824015&view=rev Log: Join if statements Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java jmeter/trunk/src/core/org/apache/jmeter/gui/action/SelectTemplatesDialog.java jmeter/trunk/src/core/org/apache/jmeter/gui/tree/JMeterTreeListener.java Modified: jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java?rev=1824015&r1=1824014&r2=1824015&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java Mon Feb 12 16:42:16 2018 @@ -170,11 +170,9 @@ public class HtmlExtractor extends Abstr if(!StringUtils.isEmpty(inputString)) { getExtractorImpl().extract(expression, attribute, matchNumber, inputString, result, found, "-1"); } else { -if(inputString==null) { -if (log.isWarnEnabled()) { -log.warn("No variable '{}' found to process by CSS/JQuery Extractor '{}', skipping processing", -getVariableName(), getName()); -} +if (inputString==null && log.isWarnEnabled()) { +log.warn("No variable '{}' found to process by CSS/JQuery Extractor '{}', skipping processing", +getVariableName(), getName()); } return Collections.emptyList(); } Modified: jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java?rev=1824015&r1=1824014&r2=1824015&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/control/WhileController.java Mon Feb 12 16:42:16 2018 @@ -98,10 +98,8 @@ public class WhileController extends Gen */ @Override public Sampler next(){ -if (isFirst()){ -if (endOfLoop(false)){ -return null; -} +if (isFirst() && endOfLoop(false)) { +return null; } return super.next(); } Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java?rev=1824015&r1=1824014&r2=1824015&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java Mon Feb 12 16:42:16 2018 @@ -54,10 +54,8 @@ public class ConvertListeners implements @Override public void addNode(Object node, HashTree subTree) { for (Object item : subTree.list()) { -if (item instanceof AbstractThreadGroup) { -if (log.isDebugEnabled()) { -log.debug("num threads = {}", ((AbstractThreadGroup) item).getNumThreads()); -} +if (item instanceof AbstractThreadGroup && log.isDebugEnabled()) { +log.debug("num threads = {}", ((AbstractThreadGroup) item).getNumThreads()); } if (item instanceof Remoteable) { if (item instanceof RemoteThreadsListenerTestElement){ Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/action/SelectTemplatesDialog.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/action/SelectTemplatesDialog.java?rev=1824015&r1=1824014&r2=1824015&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/gui/action/SelectTemplatesDialog.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/action/SelectTemplatesDialog.java Mon Feb 12 16:42:16 2018 @@ -232,14 +232,12 @@ public class SelectTemplatesDialog exten @Override public void hyperlinkUpdate(HyperlinkEvent e) { -if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { -if (java.awt.Desktop.isDesktopSupported()) { -try { -java.awt.Desktop.getDesktop().browse(e.getURL().toURI()); -} catch (Exception ex) { -
svn commit: r1824016 - /jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java
Author: fschumacher Date: Mon Feb 12 16:43:45 2018 New Revision: 1824016 URL: http://svn.apache.org/viewvc?rev=1824016&view=rev Log: Spacepolice Modified: jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java Modified: jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java?rev=1824016&r1=1824015&r2=1824016&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/extractor/HtmlExtractor.java Mon Feb 12 16:43:45 2018 @@ -76,7 +76,7 @@ public class HtmlExtractor extends Abstr if (previousResult == null) { return; } -if(log.isDebugEnabled()) { +if (log.isDebugEnabled()) { log.debug("HtmlExtractor {}: processing result", getName()); } // Fetch some variables @@ -167,7 +167,7 @@ public class HtmlExtractor extends Abstr List result = new ArrayList<>(); if (isScopeVariable()){ String inputString=vars.get(getVariableName()); -if(!StringUtils.isEmpty(inputString)) { +if (!StringUtils.isEmpty(inputString)) { getExtractorImpl().extract(expression, attribute, matchNumber, inputString, result, found, "-1"); } else { if (inputString==null && log.isWarnEnabled()) {
svn commit: r1824017 - /jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java
Author: fschumacher Date: Mon Feb 12 16:45:59 2018 New Revision: 1824017 URL: http://svn.apache.org/viewvc?rev=1824017&view=rev Log: Use char instead of string to search for Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java?rev=1824017&r1=1824016&r2=1824017&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Mon Feb 12 16:45:59 2018 @@ -69,7 +69,7 @@ public class ActiveThreadsGraphConsumer public Iterable select(Sample sample) { if(!sample.isEmptyController()) { String threadName = sample.getThreadName(); -int index = threadName.lastIndexOf(" "); +int index = threadName.lastIndexOf(' '); if (index >= 0) { threadName = threadName.substring(0, index); }
svn commit: r1824018 - /jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java
Author: fschumacher Date: Mon Feb 12 16:46:50 2018 New Revision: 1824018 URL: http://svn.apache.org/viewvc?rev=1824018&view=rev Log: No need for explicit type here Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java?rev=1824018&r1=1824017&r2=1824018&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Mon Feb 12 16:46:50 2018 @@ -75,7 +75,7 @@ public class ActiveThreadsGraphConsumer } return Arrays.asList(new String[] { threadName }); } else { -return Collections.emptyList(); +return Collections.emptyList(); } } }, new GraphValueSelector() {
svn commit: r1824019 - /jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java
Author: fschumacher Date: Mon Feb 12 16:48:01 2018 New Revision: 1824019 URL: http://svn.apache.org/viewvc?rev=1824019&view=rev Log: Return a singleton list instead of allocating a new array and wrapping that Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java?rev=1824019&r1=1824018&r2=1824019&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Mon Feb 12 16:48:01 2018 @@ -17,7 +17,6 @@ */ package org.apache.jmeter.report.processor.graph.impl; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -73,7 +72,7 @@ public class ActiveThreadsGraphConsumer if (index >= 0) { threadName = threadName.substring(0, index); } -return Arrays.asList(new String[] { threadName }); +return Collections.singletonList(threadName); } else { return Collections.emptyList(); }
svn commit: r1824020 - /jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java
Author: fschumacher Date: Mon Feb 12 16:49:46 2018 New Revision: 1824020 URL: http://svn.apache.org/viewvc?rev=1824020&view=rev Log: Convert to lambda expression Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java?rev=1824020&r1=1824019&r2=1824020&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Mon Feb 12 16:49:46 2018 @@ -26,7 +26,6 @@ import org.apache.jmeter.report.processo import org.apache.jmeter.report.processor.graph.AbstractGraphConsumer; import org.apache.jmeter.report.processor.graph.AbstractOverTimeGraphConsumer; import org.apache.jmeter.report.processor.graph.AbstractSeriesSelector; -import org.apache.jmeter.report.processor.graph.GraphValueSelector; import org.apache.jmeter.report.processor.graph.GroupInfo; import org.apache.jmeter.report.processor.graph.TimeStampKeysSelector; @@ -77,15 +76,11 @@ public class ActiveThreadsGraphConsumer return Collections.emptyList(); } } -}, new GraphValueSelector() { - -@Override -public Double select(String series, Sample sample) { -if(!sample.isEmptyController()) { -return Double.valueOf(sample.getGroupThreads()); -} else { -return null; -} +}, (series, sample) -> { +if (!sample.isEmptyController()) { +return Double.valueOf(sample.getGroupThreads()); +} else { +return null; } }, false, false)); return groupInfos;
svn commit: r1824021 - /jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java
Author: fschumacher Date: Mon Feb 12 16:50:14 2018 New Revision: 1824021 URL: http://svn.apache.org/viewvc?rev=1824021&view=rev Log: Spacepolice Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java?rev=1824021&r1=1824020&r2=1824021&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java Mon Feb 12 16:50:14 2018 @@ -65,7 +65,7 @@ public class ActiveThreadsGraphConsumer @Override public Iterable select(Sample sample) { -if(!sample.isEmptyController()) { +if (!sample.isEmptyController()) { String threadName = sample.getThreadName(); int index = threadName.lastIndexOf(' '); if (index >= 0) {
svn commit: r1824022 - /jmeter/trunk/src/core/org/apache/jmeter/save/converters/TestElementConverter.java
Author: fschumacher Date: Mon Feb 12 16:52:08 2018 New Revision: 1824022 URL: http://svn.apache.org/viewvc?rev=1824022&view=rev Log: Remove useless assignment Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/save/converters/TestElementConverter.java Modified: jmeter/trunk/src/core/org/apache/jmeter/save/converters/TestElementConverter.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/save/converters/TestElementConverter.java?rev=1824022&r1=1824021&r2=1824022&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/save/converters/TestElementConverter.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/save/converters/TestElementConverter.java Mon Feb 12 16:52:08 2018 @@ -89,9 +89,8 @@ public class TestElementConverter extend } // Update the test class name if necessary (Bug 52466) String inputName = type.getName(); -String targetName = inputName; String guiClassName = SaveService.aliasToClass(reader.getAttribute(ConversionHelp.ATT_TE_GUICLASS)); -targetName = NameUpdater.getCurrentTestName(inputName, guiClassName); +String targetName = NameUpdater.getCurrentTestName(inputName, guiClassName); if (!targetName.equals(inputName)) { // remap the class name type = mapper().realClass(targetName); }
svn commit: r1824026 - /jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
Author: fschumacher Date: Mon Feb 12 16:56:27 2018 New Revision: 1824026 URL: http://svn.apache.org/viewvc?rev=1824026&view=rev Log: Use string concatenation as it is easier to read and results in the same bytecode Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=1824026&r1=1824025&r2=1824026&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Mon Feb 12 16:56:27 2018 @@ -365,14 +365,9 @@ public class GenericTestBeanCustomizer e * @return the property details */ private static String getDetails(PropertyDescriptor pd) { -StringBuilder sb = new StringBuilder(); -sb.append(pd.getReadMethod().getDeclaringClass().getName()); -sb.append('#'); -sb.append(pd.getName()); -sb.append('('); -sb.append(pd.getPropertyType().getCanonicalName()); -sb.append(')'); -return sb.toString(); +return pd.getReadMethod().getDeclaringClass().getName() + '#' ++ pd.getName() + '(' + pd.getPropertyType().getCanonicalName() ++ ')'; } /** @@ -662,7 +657,7 @@ public class GenericTestBeanCustomizer e if (b == null) { return group; } -String key = new StringBuilder(group).append(".displayName").toString(); +String key = group + ".displayName"; if (b.containsKey(key)) { return b.getString(key); } else {
svn commit: r1824027 - /jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
Author: fschumacher Date: Mon Feb 12 16:59:07 2018 New Revision: 1824027 URL: http://svn.apache.org/viewvc?rev=1824027&view=rev Log: Remove useless assignment. Part of #356 Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=1824027&r1=1824026&r2=1824027&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Mon Feb 12 16:59:07 2018 @@ -381,7 +381,7 @@ public class GenericTestBeanCustomizer e private WrapperEditor createWrapperEditor(PropertyEditor typeEditor, PropertyDescriptor descriptor) { String[] editorTags = typeEditor.getTags(); String[] additionalTags = (String[]) descriptor.getValue(TAGS); -String[] tags = null; +String[] tags; if (editorTags == null) { tags = additionalTags; } else if (additionalTags == null) {
svn commit: r1824030 - /jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
Author: fschumacher Date: Mon Feb 12 17:01:14 2018 New Revision: 1824030 URL: http://svn.apache.org/viewvc?rev=1824030&view=rev Log: Return values directly Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Modified: jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java?rev=1824030&r1=1824029&r2=1824030&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java Mon Feb 12 17:01:14 2018 @@ -409,13 +409,11 @@ public class GenericTestBeanCustomizer e (ResourceBundle) descriptor.getValue(GenericTestBeanCustomizer.RESOURCE_BUNDLE)); } -WrapperEditor wrapper = new WrapperEditor(typeEditor, guiEditor, +return new WrapperEditor(typeEditor, guiEditor, !notNull, // acceptsNull !notExpression, // acceptsExpressions !notOther, // acceptsOther descriptor.getValue(DEFAULT)); - -return wrapper; } /** @@ -426,8 +424,7 @@ public class GenericTestBeanCustomizer e * otherwise the default is false */ static boolean notOther(PropertyDescriptor descriptor) { -boolean notOther = Boolean.TRUE.equals(descriptor.getValue(NOT_OTHER)); -return notOther; +return Boolean.TRUE.equals(descriptor.getValue(NOT_OTHER)); } /** @@ -438,8 +435,7 @@ public class GenericTestBeanCustomizer e * otherwise the default is false */ static boolean notExpression(PropertyDescriptor descriptor) { -boolean notExpression = Boolean.TRUE.equals(descriptor.getValue(NOT_EXPRESSION)); -return notExpression; +return Boolean.TRUE.equals(descriptor.getValue(NOT_EXPRESSION)); } /** @@ -450,8 +446,7 @@ public class GenericTestBeanCustomizer e * otherwise the default is false */ static boolean notNull(PropertyDescriptor descriptor) { -boolean notNull = Boolean.TRUE.equals(descriptor.getValue(NOT_UNDEFINED)); -return notNull; +return Boolean.TRUE.equals(descriptor.getValue(NOT_UNDEFINED)); } /**
svn commit: r1824031 - /jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java
Author: fschumacher Date: Mon Feb 12 17:03:24 2018 New Revision: 1824031 URL: http://svn.apache.org/viewvc?rev=1824031&view=rev Log: No need to cast here Part of #356 on Github. Contributed by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java Modified: jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java?rev=1824031&r1=1824030&r2=1824031&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/testelement/property/AbstractProperty.java Mon Feb 12 17:03:24 2018 @@ -318,7 +318,7 @@ public abstract class AbstractProperty i try { @SuppressWarnings("unchecked") // empty collection Map newColl = coll.getClass().newInstance(); -for (Map.Entry entry : ((Map)coll).entrySet()) { +for (Map.Entry entry : coll.entrySet()) { Object key = entry.getKey(); Object prop = entry.getValue(); String item=null;
svn commit: r1824035 - in /jmeter/trunk/src/core/org/apache/jmeter: control/GenericController.java engine/util/CompoundVariable.java engine/util/FunctionParser.java gui/MainFrame.java samplers/BatchSa
Author: fschumacher Date: Mon Feb 12 17:16:33 2018 New Revision: 1824035 URL: http://svn.apache.org/viewvc?rev=1824035&view=rev Log: Use isEmpty instead of comparing to size Part of #356 on Github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/core/org/apache/jmeter/control/GenericController.java jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java jmeter/trunk/src/core/org/apache/jmeter/samplers/BatchSampleSender.java jmeter/trunk/src/core/org/apache/jmeter/samplers/StatisticalSampleSender.java Modified: jmeter/trunk/src/core/org/apache/jmeter/control/GenericController.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/control/GenericController.java?rev=1824035&r1=1824034&r2=1824035&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/control/GenericController.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/control/GenericController.java Mon Feb 12 17:16:33 2018 @@ -313,7 +313,7 @@ public class GenericController extends A if (current < subControllersAndSamplers.size()) { return subControllersAndSamplers.get(current); } -if (subControllersAndSamplers.size() == 0) { +if (subControllersAndSamplers.isEmpty()) { setDone(true); throw new NextIsNullException(); } Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java?rev=1824035&r1=1824034&r2=1824035&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java Mon Feb 12 17:16:33 2018 @@ -79,11 +79,10 @@ public class CompoundVariable implements } } -final int functionCount = functions.size(); -if (functionCount == 0) { +if (functions.isEmpty()) { log.warn("Did not find any functions"); } else { -log.debug("Function count: {}", functionCount); +log.debug("Function count: {}", functions.size()); } } catch (Exception err) { log.error("Exception occurred in static initialization of CompoundVariable.", err); @@ -126,7 +125,7 @@ public class CompoundVariable implements /** {@inheritDoc} */ @Override public String execute(SampleResult previousResult, Sampler currentSampler) { -if (compiledComponents == null || compiledComponents.size() == 0) { +if (compiledComponents == null || compiledComponents.isEmpty()) { return ""; // $NON-NLS-1$ } @@ -180,7 +179,7 @@ public class CompoundVariable implements } compiledComponents = functionParser.compileString(parameters); -if (compiledComponents.size() > 1 || !(compiledComponents.get(0) instanceof String)) { +if (!compiledComponents.isEmpty() || !(compiledComponents.get(0) instanceof String)) { hasFunction = true; } permanentResults = null; // To be calculated and cached on first execution Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java?rev=1824035&r1=1824034&r2=1824035&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/engine/util/FunctionParser.java Mon Feb 12 17:16:33 2018 @@ -95,7 +95,7 @@ class FunctionParser { result.clear(); result.add(value); } -if (result.size() == 0) { +if (result.isEmpty()) { result.add(""); } return result; Modified: jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java?rev=1824035&r1=1824034&r2=1824035&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/gui/MainFrame.java Mon Feb 12 17:16:33 2018 @@ -468,7 +468,7 @@ public class MainFrame extends JFrame im @Override public void testEnded(String host) { hosts.remove(host); -if (hosts.size() == 0) { +if (hosts.isEmpty())
svn commit: r1824037 - /jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java
Author: fschumacher Date: Mon Feb 12 17:18:13 2018 New Revision: 1824037 URL: http://svn.apache.org/viewvc?rev=1824037&view=rev Log: No need to cast here. Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java?rev=1824037&r1=1824036&r2=1824037&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java Mon Feb 12 17:18:13 2018 @@ -195,7 +195,7 @@ public class CompoundVariable implements static Object getNamedFunction(String functionName) throws InvalidVariableException { if (functions.containsKey(functionName)) { try { -return ((Class) functions.get(functionName)).newInstance(); +return functions.get(functionName).newInstance(); } catch (Exception e) { log.error("Exception occurred while instantiating a function: {}", functionName, e); // $NON-NLS-1$ throw new InvalidVariableException(e);
svn commit: r1824042 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java
Author: fschumacher Date: Mon Feb 12 17:41:18 2018 New Revision: 1824042 URL: http://svn.apache.org/viewvc?rev=1824042&view=rev Log: Extract logic in smaller methods and local variables Part of #356 on Github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java?rev=1824042&r1=1824041&r2=1824042&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Mon Feb 12 17:41:18 2018 @@ -78,45 +78,20 @@ public class HTMLAssertion extends Abstr public AssertionResult getResult(SampleResult inResponse) { log.debug("HTMLAssertions.getResult() called"); -// no error as default -AssertionResult result = new AssertionResult(getName()); - if (inResponse.getResponseData().length == 0) { -return result.setResultForNull(); +return new AssertionResult(getName()).setResultForNull(); } +return runTidy(inResponse); +} + +private AssertionResult runTidy(SampleResult inResponse) { +AssertionResult result = new AssertionResult(getName()); result.setFailure(false); // create parser -Tidy tidy = null; -try { -if (log.isDebugEnabled()) { -log.debug( -"Setting up tidy... doctype: {}, errors only: {}, error threshold: {}," -+ "warning threshold: {}, html mode: {}, xhtml mode: {}, xml mode: {}.", -getDoctype(), isErrorsOnly(), getErrorThreshold(), -getWarningThreshold(), isHTML(), isXHTML(), isXML()); -} -tidy = new Tidy(); -tidy.setInputEncoding(StandardCharsets.UTF_8.name()); -tidy.setOutputEncoding(StandardCharsets.UTF_8.name()); -tidy.setQuiet(false); -tidy.setShowWarnings(true); -tidy.setOnlyErrors(isErrorsOnly()); -tidy.setDocType(getDoctype()); -if (isXHTML()) { -tidy.setXHTML(true); -} else if (isXML()) { -tidy.setXmlTags(true); -} -tidy.setErrfile(getFilename()); - -if (log.isDebugEnabled()) { -log.debug("Tidy instance created... err file: {}, tidy parser: {}", getFilename(), tidy); -} - -} catch (Exception e) { -log.error("Unable to instantiate tidy parser", e); +Tidy tidy = getTidy(); +if (tidy == null) { result.setFailure(true); result.setFailureMessage("Unable to instantiate tidy parser"); // return with an error @@ -140,8 +115,10 @@ public class HTMLAssertion extends Abstr writeOutput(errbuf.toString()); // evaluate result -if ((tidy.getParseErrors() > getErrorThreshold()) -|| (!isErrorsOnly() && (tidy.getParseWarnings() > getWarningThreshold( { +final boolean errorsAboveThreshold = tidy.getParseErrors() > getErrorThreshold(); +final boolean warningsAboveThreshold = tidy.getParseWarnings() > getWarningThreshold(); +if (errorsAboveThreshold +|| (!isErrorsOnly() && warningsAboveThreshold)) { log.debug("Errors/warnings detected while parsing with tidy: {}", errbuf); result.setFailure(true); result.setFailureMessage(MessageFormat.format("Tidy Parser errors: " + tidy.getParseErrors() @@ -149,7 +126,7 @@ public class HTMLAssertion extends Abstr + tidy.getParseWarnings() + " (allowed " + getWarningThreshold() + ")", new Object[0])); // return with an error -} else if ((tidy.getParseErrors() > 0) || (tidy.getParseWarnings() > 0)) { +} else if (tidy.getParseErrors() > 0 || tidy.getParseWarnings() > 0) { // return with no error log.debug("HTMLAssertions.getResult(): there were errors/warnings but threshold to high"); result.setFailure(false); @@ -168,6 +145,42 @@ public class HTMLAssertion extends Abstr return result; } +private Tidy getTidy() { +try { +Tidy tidy; +if (log.isDebugEnabled()) { +log.debug( +"Setting up tidy... doctype: {}, errors only: {}, error threshold: {}," ++ "warning threshold: {}, html mode: {}, xhtml mode: {}, xml mode: {}.", +
svn commit: r1824044 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java
Author: fschumacher Date: Mon Feb 12 17:45:39 2018 New Revision: 1824044 URL: http://svn.apache.org/viewvc?rev=1824044&view=rev Log: Use StringUtils Part of #356 on Github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java?rev=1824044&r1=1824043&r2=1824044&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Mon Feb 12 17:45:39 2018 @@ -28,6 +28,7 @@ import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.text.MessageFormat; +import org.apache.commons.lang3.StringUtils; import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.testelement.AbstractTestElement; import org.apache.jmeter.testelement.property.BooleanProperty; @@ -190,7 +191,7 @@ public class HTMLAssertion extends Abstr String lFilename = getFilename(); // check if filename defined -if ((lFilename != null) && (!"".equals(lFilename.trim( { +if (StringUtils.isNotBlank(lFilename)) { try (FileWriter lOutputWriter = new FileWriter(lFilename, false)){ // write to file @@ -247,7 +248,7 @@ public class HTMLAssertion extends Abstr *used */ public void setDoctype(String inDoctype) { -if ((inDoctype == null) || (inDoctype.trim().isEmpty())) { +if (StringUtils.isAllBlank(inDoctype)) { setProperty(new StringProperty(DOCTYPE_KEY, DEFAULT_DOCTYPE)); } else { setProperty(new StringProperty(DOCTYPE_KEY, inDoctype));
svn commit: r1824045 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java
Author: fschumacher Date: Mon Feb 12 17:48:12 2018 New Revision: 1824045 URL: http://svn.apache.org/viewvc?rev=1824045&view=rev Log: Extract duplicate code in helper method Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java?rev=1824045&r1=1824044&r2=1824045&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Mon Feb 12 17:48:12 2018 @@ -264,6 +264,13 @@ public class HTMLAssertion extends Abstr setProperty(new BooleanProperty(ERRORS_ONLY_KEY, inErrorsOnly)); } +private long capToZero(long value) { +if (value == Long.MAX_VALUE) { +return 0; +} +return value; +} + /** * Sets the threshold on error level * @@ -276,11 +283,7 @@ public class HTMLAssertion extends Abstr if (inErrorThreshold < 0L) { throw new IllegalArgumentException(JMeterUtils.getResString("argument_must_not_be_negative")); //$NON-NLS-1$ } -if (inErrorThreshold == Long.MAX_VALUE) { -setProperty(new LongProperty(ERROR_THRESHOLD_KEY, 0)); -} else { -setProperty(new LongProperty(ERROR_THRESHOLD_KEY, inErrorThreshold)); -} +setProperty(new LongProperty(ERROR_THRESHOLD_KEY, capToZero(inErrorThreshold))); } /** @@ -295,11 +298,7 @@ public class HTMLAssertion extends Abstr if (inWarningThreshold < 0L) { throw new IllegalArgumentException(JMeterUtils.getResString("argument_must_not_be_negative")); //$NON-NLS-1$ } -if (inWarningThreshold == Long.MAX_VALUE) { -setProperty(new LongProperty(WARNING_THRESHOLD_KEY, 0)); -} else { -setProperty(new LongProperty(WARNING_THRESHOLD_KEY, inWarningThreshold)); -} +setProperty(new LongProperty(WARNING_THRESHOLD_KEY, capToZero(inWarningThreshold))); } /**
svn commit: r1824046 - /jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java
Author: fschumacher Date: Mon Feb 12 17:50:21 2018 New Revision: 1824046 URL: http://svn.apache.org/viewvc?rev=1824046&view=rev Log: Use simpler variable names Part of #356 on Github. Based on contribution by Graham Russell (graham at ham1.co.uk) Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Modified: jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java?rev=1824046&r1=1824045&r2=1824046&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/assertions/HTMLAssertion.java Mon Feb 12 17:50:21 2018 @@ -188,17 +188,16 @@ public class HTMLAssertion extends Abstr * @param inOutput The String to write to file */ private void writeOutput(String inOutput) { -String lFilename = getFilename(); +String filename = getFilename(); // check if filename defined -if (StringUtils.isNotBlank(lFilename)) { - -try (FileWriter lOutputWriter = new FileWriter(lFilename, false)){ +if (StringUtils.isNotBlank(filename)) { +try (FileWriter writer = new FileWriter(filename, false)){ // write to file -lOutputWriter.write(inOutput); -log.debug("writeOutput() -> output successfully written to file: {}", lFilename); +writer.write(inOutput); +log.debug("writeOutput() -> output successfully written to file: {}", filename); } catch (IOException ex) { -log.warn("writeOutput() -> could not write output to file: {}", lFilename, ex); +log.warn("writeOutput() -> could not write output to file: {}", filename, ex); } } }
svn commit: r1824049 - /jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java
Author: fschumacher Date: Mon Feb 12 18:28:26 2018 New Revision: 1824049 URL: http://svn.apache.org/viewvc?rev=1824049&view=rev Log: Don't use isEmpty when comparing size to greater than one Not really part of #356 on Github. Follow up to r1824035 Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java?rev=1824049&r1=1824048&r2=1824049&view=diff == --- jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java (original) +++ jmeter/trunk/src/core/org/apache/jmeter/engine/util/CompoundVariable.java Mon Feb 12 18:28:26 2018 @@ -179,7 +179,7 @@ public class CompoundVariable implements } compiledComponents = functionParser.compileString(parameters); -if (!compiledComponents.isEmpty() || !(compiledComponents.get(0) instanceof String)) { +if (compiledComponents.size() > 1 || !(compiledComponents.get(0) instanceof String)) { hasFunction = true; } permanentResults = null; // To be calculated and cached on first execution
svn commit: r1824054 - in /jmeter/trunk: src/components/org/apache/jmeter/visualizers/StatVisualizer.java xdocs/changes.xml
Author: fschumacher Date: Mon Feb 12 18:58:24 2018 New Revision: 1824054 URL: http://svn.apache.org/viewvc?rev=1824054&view=rev Log: Update JTable in Aggregate Report only when new data has arrived. That way selections of rows will be kept longer around. Bugzilla Id: 62097 Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java jmeter/trunk/xdocs/changes.xml Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java?rev=1824054&r1=1824053&r2=1824054&view=diff == --- jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java (original) +++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/StatVisualizer.java Mon Feb 12 18:58:24 2018 @@ -90,6 +90,8 @@ public class StatVisualizer extends Abst private Deque newRows = new ConcurrentLinkedDeque<>(); +private volatile boolean dataChanged; + public StatVisualizer() { super(); model = StatGraphVisualizer.createObjectTableModel(); @@ -131,6 +133,7 @@ public class StatVisualizer extends Abst synchronized(lock) { tot.addSample(res); } +dataChanged = true; } /** @@ -179,6 +182,10 @@ public class StatVisualizer extends Abst this.add(opts,BorderLayout.SOUTH); new Timer(REFRESH_PERIOD, e -> { +if (!dataChanged) { +return; +} +dataChanged = false; synchronized (lock) { while (!newRows.isEmpty()) { model.insertRow(newRows.pop(), model.getRowCount() - 1); Modified: jmeter/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1824054&r1=1824053&r2=1824054&view=diff == --- jmeter/trunk/xdocs/changes.xml [utf-8] (original) +++ jmeter/trunk/xdocs/changes.xml [utf-8] Mon Feb 12 18:58:24 2018 @@ -142,6 +142,7 @@ Summary Listeners + 62097Update JTable in Aggregate Report only when new data has arrived. That way selections of rows will be kept longer around. Timers, Assertions, Config, Pre- & Post-Processors