You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2017/02/10 20:04:58 UTC

svn commit: r1782515 - in /jmeter/trunk: bin/jmeter.properties src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java xdocs/usermanual/properties_reference.xml

Author: fschumacher
Date: Fri Feb 10 20:04:58 2017
New Revision: 1782515

URL: http://svn.apache.org/viewvc?rev=1782515&view=rev
Log:
Simplify code and implement the option to keep all results in the view (even if it will consume a lot of memory).

Bugzilla Id: 60687

Modified:
    jmeter/trunk/bin/jmeter.properties
    jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
    jmeter/trunk/xdocs/usermanual/properties_reference.xml

Modified: jmeter/trunk/bin/jmeter.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/jmeter.properties?rev=1782515&r1=1782514&r2=1782515&view=diff
==============================================================================
--- jmeter/trunk/bin/jmeter.properties (original)
+++ jmeter/trunk/bin/jmeter.properties Fri Feb 10 20:04:58 2017
@@ -1080,6 +1080,7 @@ view.results.tree.renderers_order=.Rende
 #view.results.tree.update_period=500
 
 # Maximum number of results in the results tree
+# Set to 0 to store all results (might consume a lot of memory)
 #view.results.tree.max_results=500
 
 # Maximum size of Document that can be parsed by Tika engine; defaut=10 * 1024 * 1024 (10MB)

Modified: jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java?rev=1782515&r1=1782514&r2=1782515&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java Fri Feb 10 20:04:58 2017
@@ -57,7 +57,9 @@ import javax.swing.tree.DefaultTreeModel
 import javax.swing.tree.TreePath;
 import javax.swing.tree.TreeSelectionModel;
 
-import org.apache.commons.collections.buffer.BoundedFifoBuffer;
+import org.apache.commons.collections.Buffer;
+import org.apache.commons.collections.buffer.CircularFifoBuffer;
+import org.apache.commons.collections.buffer.UnboundedFifoBuffer;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.jmeter.JMeter;
 import org.apache.jmeter.assertions.AssertionResult;
@@ -135,7 +137,7 @@ implements ActionListener, TreeSelection
 
     private JCheckBox autoScrollCB;
 
-    private BoundedFifoBuffer buffer = new BoundedFifoBuffer(JMeterUtils.getPropDefault("view.results.tree.max_results", 500));
+    private Buffer buffer;
 
     private boolean dataChanged;
 
@@ -144,19 +146,20 @@ implements ActionListener, TreeSelection
      */
     public ViewResultsFullVisualizer() {
         super();
+        final int maxResults = JMeterUtils.getPropDefault("view.results.tree.max_results", 500);
+        if (maxResults > 0) {
+            buffer = new CircularFifoBuffer(maxResults);
+        } else {
+            buffer = new UnboundedFifoBuffer();
+        }
         init();
-        new Timer(REFRESH_PERIOD, e -> {
-            updateGui();
-        }).start();
+        new Timer(REFRESH_PERIOD, e -> updateGui()).start();
     }
 
     /** {@inheritDoc} */
     @Override
     public void add(final SampleResult sample) {
         synchronized (buffer) {
-            if (buffer.isFull()) {
-                buffer.remove();
-            }
             buffer.add(sample);
             dataChanged = true;
         }
@@ -171,10 +174,8 @@ implements ActionListener, TreeSelection
                 return;
             }
             root.removeAllChildren();
-            @SuppressWarnings("unchecked")
-            Iterator<SampleResult> samplers = buffer.iterator();
-            while (samplers.hasNext()) {
-                SampleResult res = (SampleResult) samplers.next();
+            for (Object sampler: buffer) {
+                SampleResult res = (SampleResult) sampler;
                 // Add sample
                 DefaultMutableTreeNode currNode = new SearchableTreeNode(res, treeModel);
                 treeModel.insertNodeInto(currNode, root, root.getChildCount());

Modified: jmeter/trunk/xdocs/usermanual/properties_reference.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/usermanual/properties_reference.xml?rev=1782515&r1=1782514&r2=1782515&view=diff
==============================================================================
--- jmeter/trunk/xdocs/usermanual/properties_reference.xml (original)
+++ jmeter/trunk/xdocs/usermanual/properties_reference.xml Fri Feb 10 20:04:58 2017
@@ -1457,6 +1457,7 @@ log_level.org.apache.http.client=DEBUG
 </property>
 <property name="view.results.tree.max_results">
     Maximum number of main samples, that should be stored and displayed.<br/>
+    A value of <code>0</code> will store all results. This might consume a lot of memory.<br/>
     Defaults to: <code>500</code>
 </property>
 <property name="view.results.tree.max_size">