You are viewing a plain text version of this content. The canonical link for it is here.
Posted to devnull@infra.apache.org by vl...@apache.org on 2019/06/08 18:42:04 UTC

[jmeter] annotated tag v2_3 created (now e05294c)

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

vladimirsitnikov pushed a change to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git.


      at e05294c  (tag)
 tagging b3a94c295d17f8106aa0adcc7536ef31dd581ba9 (commit)
      by Sebastian Bazley
      on Tue Nov 1 21:24:22 2011 +0000

- Log -----------------------------------------------------------------
v2_3
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new d776881  Synchronise generated documents
     new 5584d82  Update branch/trunk history
     new cf0fc03  Ensure uncaught exceptions are logged
     new f35e90e  Document https.default.protocol
     new ffeb912  Document Module Controller restrictons
     new bc616e2  Synch recent doc updates
     new d5a94b5  Add full bug listing; correct existing listings to include NEEDINFO and Trivial
     new e40b168  Fix bug - should not have used "set" Rework to remove need to save CLASSPATH Kill rmiregistry when interrupted
     new ffbf799  Document change to jmeter-server
     new 3909254  Oops - over-zealous replacement...
     new 40f87f4  Remove typo
     new 03cb352  Avoid possible ArrayOutOfBounds Exception
     new 65cf7f8  Add RC4 tag
     new 5deb917  Bug 43364 - add option to enable previous If Controller behaviour
     new 5dbe89c  Add details of how to set rmi hostname
     new a28afee  Clarify If and While Condition types
     new 1243234  Document remote batching modes
     new 04430b0  SVN is the new CVS
     new 61a22e6  Ensure 3rd party licenses are in external.jars fileset jmeter.sh needs to be executable
     new 7651afa  Correct bug number (41104=>41140) and add details to fixed bugs
     new b49e18d  Add vars.putObject() examples to BeanShell descriptions
     new 975a7b1  Look for user.properties and system.properties in JMeter bin directory if not found locally
     new 7386860  Bug 43449 - Statistical Remote mode does not handle Latency
     new cfef233  May be called from XStream; log not used
     new b5e2402  Fix typo (bytesx => bytes)
     new 3830313  Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from CSV files
     new 7ce4ab6  Disable SaveService version checks
     new b23a6a6  Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from XML files too
     new 68d0c89  BatchTest: remove latency from XML output; add sampleCount to CSV and XML
     new ad5e4b5  Add sample count to response pane
     new 816dbab  Bug 43450 - add save/restore of error count; fix Calculator to use error count
     new fedf18b  Listener file name is for read as well as write
     new 12cadc8  Update some screenshots; document new XML save file attributes
     new dd2bb19  Synch Javadocs
     new a75bfc7  Synch recent document changes
     new 096fe63  SampleEvent requires the ThreadGroup name This is equivalent to the previous code, but clearer.
     new 582f2a5  The change of key to include the thread name was wrong It worked, but fewer samples could be aggregated.
     new c4ec158  Document Statistical batch mode
     new 7eb17f4  Set EOL=LF for shell scripts
     new 47962f9  Fix LF for all .sh files as well
     new 1ab316c  Synch doc changes
     new 12fae0f  Update with current list of saveservice properties
     new ba37657  Add svn revision to jar manifests Insist on jmeter.version and svn.revision definitions when building a distribution Derive svn revision automatically if possible, but allow command-line definition if necessary
     new 842ddd0  Needs blank line at end to prevent changes when fixcfrlf is run
     new 197f9ec  2.3 final
     new a5bb329  Fix up version info for the tag
     new b3a94c2  JMeter TLP move

The 47 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[jmeter] 47/47: JMeter TLP move

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit b3a94c295d17f8106aa0adcc7536ef31dd581ba9
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Tue Nov 1 21:24:22 2011 +0000

    JMeter TLP move
    
    git-svn-id: https://svn.apache.org/repos/asf/jmeter/tags/v2_3@1196284 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 2a4e6f79917136802e64e717e39540657758664e


[jmeter] 24/47: May be called from XStream; log not used

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit cfef23375569a39bf08a32468ee849a469c515f7
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Fri Sep 21 23:31:00 2007 +0000

    May be called from XStream; log not used
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578321 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: de580b213d4b262b2134b9503ce572cf886feaaf
---
 src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
index a5aff10..e0f5fac 100644
--- a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
+++ b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
@@ -20,21 +20,18 @@ package org.apache.jmeter.samplers;
 
 import java.io.Serializable;
 
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
-
 /**
  * @author Lars Krog-Jensen
  *         Created: 2005-okt-04
  */
 public class StatisticalSampleResult extends SampleResult implements
 		Serializable {
-    private static final Logger log = LoggingManager.getLoggerForClass();
     
+	private static final long serialVersionUID = 23L;
+
 	private int errorCount;
 
-    public StatisticalSampleResult(){
-       log.warn("Constructor only intended for use in testing"); // $NON-NLS-1$
+    public StatisticalSampleResult(){// May be called by XStream
     }
     
 	public StatisticalSampleResult(SampleResult res) {


[jmeter] 15/47: Add details of how to set rmi hostname

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 5dbe89caac94de83911f1f5d888c18ac7b8ccdb3
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 14:50:37 2007 +0000

    Add details of how to set rmi hostname
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577779 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: a42f42774de88cac5a849a3a783b732d0c7e7199
---
 bin/jmeter-server | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/bin/jmeter-server b/bin/jmeter-server
index f0886a2..46d5bd5 100755
--- a/bin/jmeter-server
+++ b/bin/jmeter-server
@@ -24,4 +24,12 @@ DIRNAME=`dirname $0`
 CLASSPATH=${DIRNAME}/../lib/ext/ApacheJMeter_core.jar:${DIRNAME}/../lib/jorphan.jar:${DIRNAME}/../lib/logkit-1.2.jar rmiregistry $SERVER_PORT &
 # stop rmiregistry on interrupt 
 trap "kill $!" 2
-${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
\ No newline at end of file
+
+# If the client fails with:
+# ERROR - jmeter.engine.ClientJMeterEngine: java.rmi.ConnectException: Connection refused to host: 127.0.0.1
+# then it may be due to the server host returning 127.0.0.1 as its address 
+
+# One way to fix this is to define RMI_HOST_DEF below
+#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
+
+${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} $RMI_HOST_DEF -s -j jmeter-server.log "$@"
\ No newline at end of file


[jmeter] 35/47: Synch recent document changes

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit a75bfc774baba56e45a3e00a394b19ed23d4a27c
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 23 01:23:47 2007 +0000

    Synch recent document changes
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578535 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 0c7a49f264500951040e7eefbad7b06c60367be4


[jmeter] 26/47: Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from CSV files

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 38303130810afbb4665a53b6d451ce85ba60ff3c
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 00:12:06 2007 +0000

    Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from CSV files
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578333 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 3fec648474f8c91903b85187867663c1f01b8bc7
---
 bin/jmeter.properties                              |  1 +
 .../apache/jmeter/resources/messages.properties    |  1 +
 .../jmeter/samplers/SampleSaveConfiguration.java   | 23 ++++++++++++++++++--
 .../org/apache/jmeter/save/OldSaveService.java     | 25 +++++++++++++++++++++-
 .../SampleSaveConfigurationConverter.java          |  5 +++++
 xdocs/changes.xml                                  |  1 +
 6 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/bin/jmeter.properties b/bin/jmeter.properties
index a25d9c5..18f0f79 100644
--- a/bin/jmeter.properties
+++ b/bin/jmeter.properties
@@ -273,6 +273,7 @@ log_level.jorphan=INFO
 #jmeter.save.saveservice.url=false
 #jmeter.save.saveservice.filename=false
 #jmeter.save.saveservice.thread_counts=false
+#jmeter.save.saveservice.sample_count=false
 
 # Timestamp format
 # legitimate values: none, ms, or a format suitable for SimpleDateFormat
diff --git a/src/core/org/apache/jmeter/resources/messages.properties b/src/core/org/apache/jmeter/resources/messages.properties
index 663586e..a11b8b2 100644
--- a/src/core/org/apache/jmeter/resources/messages.properties
+++ b/src/core/org/apache/jmeter/resources/messages.properties
@@ -634,6 +634,7 @@ save_responseheaders=Save Response Headers
 save_samplerdata=Save Sampler Data
 save_subresults=Save Sub Results
 save_success=Save Success
+save_samplecount=Save Sample Count
 save_threadcounts=Save Active Thread Counts
 save_threadname=Save Thread Name
 save_time=Save Elapsed Time
diff --git a/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java b/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
index 19566b8..abd9cb1 100644
--- a/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
+++ b/src/core/org/apache/jmeter/samplers/SampleSaveConfiguration.java
@@ -37,7 +37,7 @@ import org.apache.jmeter.util.JMeterUtils;
  * - clone s.xyz = xyz
  * - setXyz(boolean)
  * - saveXyz()
- * - update SampleSaveConfigurationConverter to add new field
+ * - update SampleSaveConfigurationConverter to add new fields to marshall() and shouldSerialiseMember()
  * - update SampleResultConverter and/or HTTPSampleConverter
  * - update CSV routines in OldSaveService
  * - update messages.properties to add save_xyz entry
@@ -56,7 +56,7 @@ import org.apache.jmeter.util.JMeterUtils;
  *
  */
 public class SampleSaveConfiguration implements Cloneable, Serializable {
-	private static final long serialVersionUID = 5;
+	private static final long serialVersionUID = 6L;
 
 	// ---------------------------------------------------------------------
 	// PROPERTY FILE CONSTANTS
@@ -197,6 +197,8 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
 
     private static final String SAVE_THREAD_COUNTS = "jmeter.save.saveservice.thread_counts"; // $NON_NLS-1$
 
+    private static final String SAVE_SAMPLE_COUNT = "jmeter.save.saveservice.sample_count"; // $NON_NLS-1$
+
     // N.B. Remember to update the equals and hashCode methods when adding new variables.
     
 	// Initialise values from properties
@@ -211,6 +213,8 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
 	private boolean url = _url, bytes = _bytes , fileName = _fileName;
 	
     private boolean threadCounts = _threadCounts;
+
+    private boolean sampleCount = _sampleCount;
     
     // Does not appear to be used (yet)
 	private int assertionsResultsToSave = _assertionsResultsToSave;
@@ -256,6 +260,8 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
 
     private static final boolean _threadCounts;
     
+    private static final boolean _sampleCount;
+    
 	private static final DateFormat _formatter;
 
 	/**
@@ -342,6 +348,8 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
 		}
 
         _threadCounts=TRUE.equalsIgnoreCase(props.getProperty(SAVE_THREAD_COUNTS, FALSE));
+
+        _sampleCount=TRUE.equalsIgnoreCase(props.getProperty(SAVE_SAMPLE_COUNT, FALSE));
 	}
 
 	// Don't save this, as not settable via GUI
@@ -382,6 +390,7 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
 		subresults = value;
 		success = value;
 		threadCounts = value;
+		sampleCount = value;
 		threadName = value;
 		time = value;
 		timestamp = value;
@@ -442,6 +451,7 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
             s.url == url &&
             s.bytes == bytes &&
             s.fileName == fileName &&
+            s.sampleCount == sampleCount &&
             s.threadCounts == threadCounts;
         
         boolean stringValues = false;
@@ -486,6 +496,7 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
         hash = 31 * hash + (threadCounts ? 1 : 0);
         hash = 31 * hash + (delimiter != null  ? delimiter.hashCode() : 0);
         hash = 31 * hash + (formatter != null  ? formatter.hashCode() : 0);
+        hash = 31 * hash + (sampleCount ? 1 : 0);
         
         return hash;
     }
@@ -687,6 +698,14 @@ public class SampleSaveConfiguration implements Cloneable, Serializable {
         this.threadCounts = save;
     }
 
+    public boolean saveSampleCount() {
+        return sampleCount;
+    }
+
+    public void setSampleCount(boolean save) {
+        this.sampleCount = save;
+    }
+
 	///////////////// End of standard field accessors /////////////////////
 	
     /**
diff --git a/src/core/org/apache/jmeter/save/OldSaveService.java b/src/core/org/apache/jmeter/save/OldSaveService.java
index 5e082b1..c97742b 100644
--- a/src/core/org/apache/jmeter/save/OldSaveService.java
+++ b/src/core/org/apache/jmeter/save/OldSaveService.java
@@ -100,6 +100,7 @@ public final class OldSaveService {
     private static final String CSV_BYTES= "bytes"; // $NON-NLS-1$
     private static final String CSV_THREAD_COUNT1 = "grpThreads"; // $NON-NLS-1$
     private static final String CSV_THREAD_COUNT2 = "allThreads"; // $NON-NLS-1$
+    private static final String CSV_SAMPLE_COUNT = "SampleCount"; // $NON-NLS-1$
     private static final String CSV_URL = "URL"; // $NON-NLS-1$
     private static final String CSV_FILENAME = "Filename"; // $NON-NLS-1$
     private static final String CSV_LATENCY = "Latency"; // $NON-NLS-1$
@@ -259,6 +260,12 @@ public final class OldSaveService {
                 result.setEncodingAndType(text);
             }
 
+            if (saveConfig.saveEncoding()) {
+            	field = CSV_SAMPLE_COUNT;
+                text = parts[i++];
+                result.setSampleCount(Integer.parseInt(text));
+            }
+
             
 		} catch (NumberFormatException e) {
 			log.warn("Error parsing field '" + field + "' at line " + lineNumber + " " + e);
@@ -368,6 +375,11 @@ public final class OldSaveService {
             text.append(delim);
         }
 
+		if (saveConfig.saveSampleCount()) {
+			text.append(CSV_SAMPLE_COUNT);
+			text.append(delim);
+		}
+
 		String resultString = null;
 		int size = text.length();
 		int delSize = delim.length();
@@ -399,8 +411,10 @@ public final class OldSaveService {
             headerLabelMethods.put(CSV_FILENAME, new Functor("setFileName"));
             headerLabelMethods.put(CSV_LATENCY, new Functor("setLatency"));
             headerLabelMethods.put(CSV_ENCODING, new Functor("setEncoding"));
+            // Both these are needed in the list even though they set the same variable
             headerLabelMethods.put(CSV_THREAD_COUNT1,new Functor("setThreadCounts"));
-            headerLabelMethods.put(CSV_THREAD_COUNT2, new Functor("setThreadCounts"));
+            headerLabelMethods.put(CSV_THREAD_COUNT2,new Functor("setThreadCounts"));
+            headerLabelMethods.put(CSV_SAMPLE_COUNT, new Functor("setSampleCount"));
 	}
 
 	/**
@@ -578,6 +592,11 @@ public final class OldSaveService {
             text.append(delimiter);
         }
 
+    	if (saveConfig.saveSampleCount()) {
+    		text.append(sample.getSampleCount());
+    		text.append(delimiter);
+    	}
+    
     	String resultString = null;
     	int size = text.length();
     	int delSize = delimiter.length();
@@ -697,6 +716,10 @@ public final class OldSaveService {
 		return config;
 	}
 
+	/*
+	 * TODO - I think this is used for the original test plan format
+	 * It seems to be rather out of date, as many attributes are missing?
+	*/
 	/**
 	 * This method determines the content of the result data that will be
 	 * stored.
diff --git a/src/core/org/apache/jmeter/save/converters/SampleSaveConfigurationConverter.java b/src/core/org/apache/jmeter/save/converters/SampleSaveConfigurationConverter.java
index 8f638f7..e15f0bc 100644
--- a/src/core/org/apache/jmeter/save/converters/SampleSaveConfigurationConverter.java
+++ b/src/core/org/apache/jmeter/save/converters/SampleSaveConfigurationConverter.java
@@ -47,6 +47,7 @@ public class SampleSaveConfigurationConverter  extends ReflectionConverter {
 	private static final String NODE_URL = "url"; // $NON-NLS-1$
 	private static final String NODE_BYTES = "bytes"; // $NON-NLS-1$
     private static final String NODE_THREAD_COUNT = "threadCounts"; // $NON-NLS-1$
+    private static final String NODE_SAMPLE_COUNT = "sampleCount"; // $NON-NLS-1$
 
     // Additional member names which are currently not written out
     private static final String NODE_DELIMITER = "delimiter"; // $NON-NLS-1$
@@ -61,11 +62,14 @@ public class SampleSaveConfigurationConverter  extends ReflectionConverter {
         
         public boolean shouldSerializeMember(Class definedIn, String fieldName) {
             if (SampleSaveConfiguration.class != definedIn) return true;
+            // These are new fields; not saved unless true
             if (fieldName.equals(NODE_BYTES)) return false; 
             if (fieldName.equals(NODE_URL)) return false; 
             if (fieldName.equals(NODE_FILENAME)) return false; 
             if (fieldName.equals(NODE_THREAD_COUNT)) return false; 
+            if (fieldName.equals(NODE_SAMPLE_COUNT)) return false; 
 
+            // These fields are not currently saved or restored
             if (fieldName.equals(NODE_DELIMITER)) return false; 
             if (fieldName.equals(NODE_PRINTMS)) return false; 
             return true;
@@ -109,6 +113,7 @@ public class SampleSaveConfigurationConverter  extends ReflectionConverter {
         createNode(writer,prop.saveUrl(),NODE_URL);
         createNode(writer,prop.saveFileName(),NODE_FILENAME);
         createNode(writer,prop.saveThreadCounts(),NODE_THREAD_COUNT);
+        createNode(writer,prop.saveSampleCount(),NODE_SAMPLE_COUNT);
 	}
 
     // Helper method to simplify marshall routine
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 2500dca..f773e42 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -40,6 +40,7 @@
 <li>Fixup broken jmeter-server script</li>
 <li>Bug 43364 - option to revert If Controller to pre 2.3RC3 behaviour</li>
 <li>Bug 43449 - Statistical Remote mode does not handle Latency</li>
+<li>Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from CSV files</li>
 </ul>
 
 <h4>Improvements</h4>


[jmeter] 05/47: Document Module Controller restrictons

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit ffeb912b6c5d7c1513823445987908cd7f6ebc45
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 12 17:09:40 2007 +0000

    Document Module Controller restrictons
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@575014 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 41b1ce32be7103bded3a7ac944cd65ce37f02a1a
---
 xdocs/usermanual/component_reference.xml | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index 6f3dafe..3377905 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -1489,11 +1489,30 @@ which clearly won't match. Thus the For 2 Sampler will not be run.
 
 <component name="Module Controller" index="&sect-num;.2.13"  width="409" height="255" screenshot="module_controller.png">
 <description>
-<p>The Module Controller provides a mechanism for substituting test plan fragments into the current test plan at run-time.  To use this
-module effectively, one might have a number of Controllers under the <complink name="WorkBench" />, each with a different series of
+<p>
+The Module Controller provides a mechanism for substituting test plan fragments into the current test plan at run-time.
+</p>
+<p>
+A test plan fragment consists of a Controller and all the test elements (samplers etc) contained in it. 
+The fragment can be located in any Thread Group, or on the <complink name="WorkBench" />.
+If the fragment is located in a Thread Group, then its Controller can be disabled to prevent the fragment being run
+except by the Module Controller. 
+Or you can store the fragments in a dummy Thread Group, and disable the entire Thread Group. 
+</p>
+<p>
+There can be multiple fragments, each with a different series of
 samplers under them.  The module controller can then be used to easily switch between these multiple test cases simply by choosing
 the appropriate controller in its drop down box.  This provides convenience for running many alternate test plans quickly and easily.
 </p>
+<p>
+A fragment name is made up of the Controller name and all its parent names.
+For example:
+<pre>
+Test Plan / Protocol: JDBC / Control / Interleave Controller
+</pre>
+Any fragments used by the Module Controller must have a unique name,
+as the name is used to find the target controller when a test plan is reloaded.
+</p>
 </description>
 <note>The Module Controller should not be used with remote testing or non-gui testing in conjunction with Workbench components since the Workbench test elements are not part of test plan .jmx files.  Any such test will fail.</note>
 <properties>


[jmeter] 44/47: Needs blank line at end to prevent changes when fixcfrlf is run

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 842ddd08967164f6c6b2e9bb5545cae95c29cd88
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 22:29:27 2007 +0000

    Needs blank line at end to prevent changes when fixcfrlf is run
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@579000 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 881a606a1daa057f15c2056e869657ee027de0df
---
 bin/jmeter-server | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/jmeter-server b/bin/jmeter-server
index 46d5bd5..4a89b85 100755
--- a/bin/jmeter-server
+++ b/bin/jmeter-server
@@ -32,4 +32,4 @@ trap "kill $!" 2
 # One way to fix this is to define RMI_HOST_DEF below
 #RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
 
-${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} $RMI_HOST_DEF -s -j jmeter-server.log "$@"
\ No newline at end of file
+${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} $RMI_HOST_DEF -s -j jmeter-server.log "$@"


[jmeter] 21/47: Add vars.putObject() examples to BeanShell descriptions

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit b49e18d85f85cabdff1ad61a533e356fc485b93d
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 21:14:46 2007 +0000

    Add vars.putObject() examples to BeanShell descriptions
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577919 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 4c9af3433955688a5f59fd20e1c2ec91df080d5b
---
 xdocs/usermanual/component_reference.xml | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index cd884bb..bb87532 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -762,7 +762,7 @@ If a script file is supplied, that will be used, otherwise the script will be us
 			<li>ResponseMessage = "OK"</li>
 			<li>IsSuccess = true</li>
 			<li>ctx - JMeterContext</li>
-			<li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.remove("VAR3");</li>
+			<li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.remove("VAR3"); vars.putObject("OBJ1",new Object());</li>
 		</ul>
 		<p>When the script completes, control is returned to the Sampler, and it copies the contents
 			of the following script variables into the corresponding variables in the SampleResult:</p>
@@ -840,7 +840,7 @@ The full list of variables that is set up is as follows:</p>
 <li>args - the parameters, split as described above</li>
 <li>SampleResult - pointer to the current SampleResult</li>
 <li>ctx - JMeterContext</li>
-<li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.remove("VAR3");</li>
+<li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.remove("VAR3"); vars.putObject("OBJ1",new Object());</li>
 </ul>
 <p>
 The Sampler ResponseData is set from the return value of the script.
@@ -1975,7 +1975,7 @@ See the file BeanShellListeners.bshrc for example definitions.
 <ul>
 <li>log - (Logger) - can be used to write to the log file</li>
 <li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val)</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
 <li>sampleResult - (SampleResult) - gives access to the previous SampleResult</li>
 <li>sampleEvent (SampleEvent) gives access to the current sample event</li>
 </ul>
@@ -2704,7 +2704,7 @@ These are strings unless otherwise noted:
 	<li>SampleLabel</li>
 	<li>SamplerData - data that was sent to the server</li>
 	<li>ctx - JMeterContext</li>
-	<li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value");</li>
+	<li>vars - JMeterVariables  - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.putObject("OBJ1",new Object());</li>
 </ul>
 </p>
 <p>The following methods of the Response object may be useful:
@@ -2915,7 +2915,7 @@ See the file BeanShellListeners.bshrc for example definitions.
 <ul>
 <li>log - (Logger) - can be used to write to the log file</li>
 <li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val)</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
 </ul>
 <p>For details of all the methods available on each of the above variables, please check the Javadoc</p>
 <p>If the property <b>beanshell.timer.init</b> is defined, this is used to load an initialisation file, which can be used to define methods etc for use in the BeanShell script.</p>
@@ -3136,7 +3136,7 @@ See the file BeanShellListeners.bshrc for example definitions.
 <ul>
 <li>log - (Logger) - can be used to write to the log file</li>
 <li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val)</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
 <li>prev - (SampleResult) - gives access to the previous SampleResult (if any)</li>
 <li>sampler - (Sampler)- gives access to the current sampler</li>
 </ul>
@@ -3344,7 +3344,7 @@ See the file BeanShellListeners.bshrc for example definitions.
 <ul>
 <li>log - (Logger) - can be used to write to the log file</li>
 <li>ctx - (JMeterContext) - gives access to the context</li>
-<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val)</li>
+<li>vars - (JMeterVariables) - gives read/write access to variables: vars.get(key); vars.put(key,val); vars.putObject("OBJ1",new Object());</li>
 <li>prev - (SampleResult) - gives access to the previous SampleResult</li>
 <li>data - (byte [])- gives access to the current sample data</li>
 </ul>


[jmeter] 14/47: Bug 43364 - add option to enable previous If Controller behaviour

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 5deb9175538ad278ae6a91982295cd973cf4e944
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 22:10:28 2007 +0000

    Bug 43364 - add option to enable previous If Controller behaviour
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577455 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 25a2d5d53b13c8941f5ebabf0c37e73ff39560fe
---
 bin/testfiles/BatchTestLocal.csv                   |   8 +
 bin/testfiles/BatchTestLocal.jmx                   | 259 +++++++++++++++++++++
 bin/testfiles/BatchTestLocal.xml                   |  56 +++++
 .../org/apache/jmeter/control/IfController.java    |  14 +-
 .../jmeter/control/gui/IfControllerPanel.java      |  27 +--
 .../apache/jmeter/resources/messages.properties    |   1 +
 xdocs/changes.xml                                  |   3 +-
 xdocs/usermanual/component_reference.xml           |  12 +-
 8 files changed, 363 insertions(+), 17 deletions(-)

diff --git a/bin/testfiles/BatchTestLocal.csv b/bin/testfiles/BatchTestLocal.csv
index f274c71..3d240ba 100644
--- a/bin/testfiles/BatchTestLocal.csv
+++ b/bin/testfiles/BatchTestLocal.csv
@@ -9,3 +9,11 @@ Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,
 Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,
 Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,
 Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,
+Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,
+Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,
+Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,
+Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,
+Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,
+Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,
+Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,
+Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,
diff --git a/bin/testfiles/BatchTestLocal.jmx b/bin/testfiles/BatchTestLocal.jmx
index 0098331..afcccee 100644
--- a/bin/testfiles/BatchTestLocal.jmx
+++ b/bin/testfiles/BatchTestLocal.jmx
@@ -87,6 +87,7 @@
         <hashTree>
           <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
             <stringProp name="IfController.condition">${__StringFromFile(testfiles/BatchTestLocal.txt)} &gt; 2</stringProp>
+            <stringProp name="IfController.evaluateAll">false</stringProp>
           </IfController>
           <hashTree>
             <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="If Test" enabled="true">
@@ -303,6 +304,264 @@
           <stringProp name="filename"></stringProp>
         </ResultCollector>
         <hashTree/>
+        <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+          <boolProp name="LoopController.continue_forever">true</boolProp>
+          <stringProp name="LoopController.loops">2</stringProp>
+        </LoopController>
+        <hashTree>
+          <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If once" enabled="true">
+            <stringProp name="IfController.condition">${JMeterThread.last_sample_ok}</stringProp>
+            <stringProp name="IfController.evaluateAll">false</stringProp>
+          </IfController>
+          <hashTree>
+            <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java If once 1" enabled="true">
+              <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+                <collectionProp name="Arguments.arguments">
+                  <elementProp name="Sleep_Time" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Time</stringProp>
+                    <stringProp name="Argument.value">100</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Sleep_Mask" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Mask</stringProp>
+                    <stringProp name="Argument.value">0xFF</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Label" elementType="Argument">
+                    <stringProp name="Argument.name">Label</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseCode" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseCode</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseMessage" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseMessage</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Status" elementType="Argument">
+                    <stringProp name="Argument.name">Status</stringProp>
+                    <stringProp name="Argument.value">BAD</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="SamplerData" elementType="Argument">
+                    <stringProp name="Argument.name">SamplerData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResultData" elementType="Argument">
+                    <stringProp name="Argument.name">ResultData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                </collectionProp>
+              </elementProp>
+              <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
+            </JavaSampler>
+            <hashTree/>
+            <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java If once 2" enabled="true">
+              <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+                <collectionProp name="Arguments.arguments">
+                  <elementProp name="Sleep_Time" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Time</stringProp>
+                    <stringProp name="Argument.value">100</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Sleep_Mask" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Mask</stringProp>
+                    <stringProp name="Argument.value">0xFF</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Label" elementType="Argument">
+                    <stringProp name="Argument.name">Label</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseCode" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseCode</stringProp>
+                    <stringProp name="Argument.value">200</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseMessage" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseMessage</stringProp>
+                    <stringProp name="Argument.value">OK</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Status" elementType="Argument">
+                    <stringProp name="Argument.name">Status</stringProp>
+                    <stringProp name="Argument.value">OK</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="SamplerData" elementType="Argument">
+                    <stringProp name="Argument.name">SamplerData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResultData" elementType="Argument">
+                    <stringProp name="Argument.name">ResultData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                </collectionProp>
+              </elementProp>
+              <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
+            </JavaSampler>
+            <hashTree/>
+          </hashTree>
+          <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If all" enabled="true">
+            <stringProp name="IfController.condition">${JMeterThread.last_sample_ok}</stringProp>
+            <stringProp name="IfController.evaluateAll">true</stringProp>
+          </IfController>
+          <hashTree>
+            <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java If all 1" enabled="true">
+              <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+                <collectionProp name="Arguments.arguments">
+                  <elementProp name="Sleep_Time" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Time</stringProp>
+                    <stringProp name="Argument.value">100</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Sleep_Mask" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Mask</stringProp>
+                    <stringProp name="Argument.value">0xFF</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Label" elementType="Argument">
+                    <stringProp name="Argument.name">Label</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseCode" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseCode</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseMessage" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseMessage</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Status" elementType="Argument">
+                    <stringProp name="Argument.name">Status</stringProp>
+                    <stringProp name="Argument.value">BAD</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="SamplerData" elementType="Argument">
+                    <stringProp name="Argument.name">SamplerData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResultData" elementType="Argument">
+                    <stringProp name="Argument.name">ResultData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                </collectionProp>
+              </elementProp>
+              <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
+            </JavaSampler>
+            <hashTree/>
+            <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java If all 2" enabled="true">
+              <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+                <collectionProp name="Arguments.arguments">
+                  <elementProp name="Sleep_Time" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Time</stringProp>
+                    <stringProp name="Argument.value">100</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Sleep_Mask" elementType="Argument">
+                    <stringProp name="Argument.name">Sleep_Mask</stringProp>
+                    <stringProp name="Argument.value">0xFF</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Label" elementType="Argument">
+                    <stringProp name="Argument.name">Label</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseCode" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseCode</stringProp>
+                    <stringProp name="Argument.value">200</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResponseMessage" elementType="Argument">
+                    <stringProp name="Argument.name">ResponseMessage</stringProp>
+                    <stringProp name="Argument.value">OK</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="Status" elementType="Argument">
+                    <stringProp name="Argument.name">Status</stringProp>
+                    <stringProp name="Argument.value">OK</stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="SamplerData" elementType="Argument">
+                    <stringProp name="Argument.name">SamplerData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                  <elementProp name="ResultData" elementType="Argument">
+                    <stringProp name="Argument.name">ResultData</stringProp>
+                    <stringProp name="Argument.value"></stringProp>
+                    <stringProp name="Argument.metadata">=</stringProp>
+                  </elementProp>
+                </collectionProp>
+              </elementProp>
+              <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
+            </JavaSampler>
+            <hashTree/>
+          </hashTree>
+          <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="Java OK" enabled="true">
+            <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
+              <collectionProp name="Arguments.arguments">
+                <elementProp name="Sleep_Time" elementType="Argument">
+                  <stringProp name="Argument.name">Sleep_Time</stringProp>
+                  <stringProp name="Argument.value">100</stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="Sleep_Mask" elementType="Argument">
+                  <stringProp name="Argument.name">Sleep_Mask</stringProp>
+                  <stringProp name="Argument.value">0xFF</stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="Label" elementType="Argument">
+                  <stringProp name="Argument.name">Label</stringProp>
+                  <stringProp name="Argument.value"></stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="ResponseCode" elementType="Argument">
+                  <stringProp name="Argument.name">ResponseCode</stringProp>
+                  <stringProp name="Argument.value">200</stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="ResponseMessage" elementType="Argument">
+                  <stringProp name="Argument.name">ResponseMessage</stringProp>
+                  <stringProp name="Argument.value">OK</stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="Status" elementType="Argument">
+                  <stringProp name="Argument.name">Status</stringProp>
+                  <stringProp name="Argument.value">OK</stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="SamplerData" elementType="Argument">
+                  <stringProp name="Argument.name">SamplerData</stringProp>
+                  <stringProp name="Argument.value"></stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+                <elementProp name="ResultData" elementType="Argument">
+                  <stringProp name="Argument.name">ResultData</stringProp>
+                  <stringProp name="Argument.value"></stringProp>
+                  <stringProp name="Argument.metadata">=</stringProp>
+                </elementProp>
+              </collectionProp>
+            </elementProp>
+            <stringProp name="classname">org.apache.jmeter.protocol.java.test.JavaTest</stringProp>
+          </JavaSampler>
+          <hashTree/>
+        </hashTree>
         <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="false">
           <stringProp name="TestPlan.comments"> for Module Controller</stringProp>
         </GenericController>
diff --git a/bin/testfiles/BatchTestLocal.xml b/bin/testfiles/BatchTestLocal.xml
index 54ff842..c005b7d 100644
--- a/bin/testfiles/BatchTestLocal.xml
+++ b/bin/testfiles/BatchTestLocal.xml
@@ -73,5 +73,61 @@
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
+<sample lt="0" s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
+<sample lt="0" s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+  <responseHeader class="java.lang.String"></responseHeader>
+  <requestHeader class="java.lang.String"></requestHeader>
+  <responseData class="java.lang.String"/>
+  <responseFile class="java.lang.String"></responseFile>
+  <null/>
+</sample>
 
 </testResults>
diff --git a/src/core/org/apache/jmeter/control/IfController.java b/src/core/org/apache/jmeter/control/IfController.java
index 7961f0d..2ba0945 100644
--- a/src/core/org/apache/jmeter/control/IfController.java
+++ b/src/core/org/apache/jmeter/control/IfController.java
@@ -53,6 +53,8 @@ public class IfController extends GenericController implements Serializable {
 
 	private final static String CONDITION = "IfController.condition"; //$NON-NLS-1$
 
+	private final static String EVALUATE_ALL = "IfController.evaluateAll"; //$NON-NLS-1$
+
 	/**
 	 * constructor
 	 */
@@ -105,7 +107,7 @@ public class IfController extends GenericController implements Serializable {
 			} else if (resultStr.equals("true")) { //$NON-NLS-1$
 				result = true;
 			} else {
-				throw new Exception(" BAD CONDITION :: " + cond);
+				throw new Exception(" BAD CONDITION :: " + cond + " :: expected true or false");
 			}
 
 			logger.debug("    >> evaluate Condition -  [ " + cond + "] results is  [" + result + "]");
@@ -145,7 +147,7 @@ public class IfController extends GenericController implements Serializable {
         // For subsequent calls, we are inside the IfControllerGroup,
         // so then we just pass the control to the next item inside the if control
         boolean result = true;
-        if(isFirst()) {
+        if(isEvaluateAll() || isFirst()) {
             result = evaluateCondition(getCondition());
         }
         
@@ -158,4 +160,12 @@ public class IfController extends GenericController implements Serializable {
 			return null;
 		}
 	}
+
+	public boolean isEvaluateAll() {
+		return getPropertyAsBoolean(EVALUATE_ALL,false);
+	}
+
+	public void setEvaluateAll(boolean b) {
+		setProperty(EVALUATE_ALL,b);
+	}
 }
diff --git a/src/core/org/apache/jmeter/control/gui/IfControllerPanel.java b/src/core/org/apache/jmeter/control/gui/IfControllerPanel.java
index 7cac512..3aa62fd 100644
--- a/src/core/org/apache/jmeter/control/gui/IfControllerPanel.java
+++ b/src/core/org/apache/jmeter/control/gui/IfControllerPanel.java
@@ -23,6 +23,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
 import javax.swing.Box;
+import javax.swing.JCheckBox;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
@@ -41,13 +42,13 @@ import org.apache.jmeter.util.JMeterUtils;
 
 public class IfControllerPanel extends AbstractControllerGui implements ActionListener {
 
-	private static final String CONDITION_LABEL = "if_controller_label"; // $NON-NLS-1$
-
 	/**
 	 * A field allowing the user to specify the number of times the controller
 	 * should loop.
 	 */
 	private JTextField theCondition;
+	
+	private JCheckBox evaluateAll;
 
 	/**
 	 * Boolean indicating whether or not this component should display its name.
@@ -56,9 +57,6 @@ public class IfControllerPanel extends AbstractControllerGui implements ActionLi
 	 */
 	private boolean displayName = true;
 
-	/** The name of the loops field component. */
-	private static final String CONDITION = "JS_Condition"; // $NON-NLS-1$
-
 	/**
 	 * Create a new LoopControlPanel as a standalone component.
 	 */
@@ -93,7 +91,9 @@ public class IfControllerPanel extends AbstractControllerGui implements ActionLi
 	public void configure(TestElement element) {
 		super.configure(element);
 		if (element instanceof IfController) {
-			theCondition.setText(((IfController) element).getCondition());
+			IfController ifController = (IfController) element;
+			theCondition.setText(ifController.getCondition());
+			evaluateAll.setSelected(ifController.isEvaluateAll());
 		}
 
 	}
@@ -113,11 +113,9 @@ public class IfControllerPanel extends AbstractControllerGui implements ActionLi
 	public void modifyTestElement(TestElement controller) {
 		configureTestElement(controller);
 		if (controller instanceof IfController) {
-			if (theCondition.getText().length() > 0) {
-				((IfController) controller).setCondition(theCondition.getText());
-			} else {
-				((IfController) controller).setCondition(""); // $NON-NLS-1$
-			}
+			IfController ifController = (IfController) controller;
+			ifController.setCondition(theCondition.getText());
+			ifController.setEvaluateAll(evaluateAll.isSelected());
 		}
 	}
     
@@ -127,6 +125,7 @@ public class IfControllerPanel extends AbstractControllerGui implements ActionLi
     public void clearGui() {
         super.clearGui();
         theCondition.setText(""); // $NON-NLS-1$
+        evaluateAll.setSelected(false);
     }
 
 	/**
@@ -174,12 +173,11 @@ public class IfControllerPanel extends AbstractControllerGui implements ActionLi
 		JPanel conditionPanel = new JPanel(new BorderLayout(5, 0));
 
 		// Condition LABEL
-		JLabel conditionLabel = new JLabel(JMeterUtils.getResString(CONDITION_LABEL));
+		JLabel conditionLabel = new JLabel(JMeterUtils.getResString("if_controller_label")); // $NON-NLS-1$
 		conditionPanel.add(conditionLabel, BorderLayout.WEST);
 
 		// TEXT FIELD
 		theCondition = new JTextField(""); // $NON-NLS-1$
-		theCondition.setName(CONDITION);
 		conditionLabel.setLabelFor(theCondition);
 		conditionPanel.add(theCondition, BorderLayout.CENTER);
 		theCondition.addActionListener(this);
@@ -187,6 +185,9 @@ public class IfControllerPanel extends AbstractControllerGui implements ActionLi
 		conditionPanel.add(Box.createHorizontalStrut(conditionLabel.getPreferredSize().width
 				+ theCondition.getPreferredSize().width), BorderLayout.NORTH);
 
+		// Evaluate All checkbox
+		evaluateAll = new JCheckBox(JMeterUtils.getResString("if_controller_evaluate_all")); // $NON-NLS-1$
+		conditionPanel.add(evaluateAll,BorderLayout.SOUTH);
 		return conditionPanel;
 	}
 }
\ No newline at end of file
diff --git a/src/core/org/apache/jmeter/resources/messages.properties b/src/core/org/apache/jmeter/resources/messages.properties
index d04347d..ea62a73 100644
--- a/src/core/org/apache/jmeter/resources/messages.properties
+++ b/src/core/org/apache/jmeter/resources/messages.properties
@@ -260,6 +260,7 @@ http_user_parameter_modifier=HTTP User Parameter Modifier
 httpmirror_title=HTTP Mirror Server
 id_prefix=ID Prefix
 id_suffix=ID Suffix
+if_controller_evaluate_all=Evaluate for all children?
 if_controller_label=Condition
 if_controller_title=If Controller
 ignore_subcontrollers=Ignore sub-controller blocks
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index aa1e008..fb2de75 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -38,6 +38,7 @@
 <li>Bug 43332 - 2.3RC4 does not clear Guis based on TestBean</li>
 <li>Bug 42948 - Problems with Proxy gui table fields in Java 1.6</li>
 <li>Fixup broken jmeter-server script</li>
+<li>Bug 43364 - option to revert If Controller to pre 2.3RC3 behaviour</li>
 </ul>
 
 <h4>Improvements</h4>
@@ -385,7 +386,7 @@ It was unused so far, and used the only Sun-specific class in JMeter.
 <li>Function methods setParameters() need to be synchronized</li>
 <li>Fix CLI long optional argument to require "=" (as for short options)</li>
 <li>Fix SlowSocket to work properly with Httpclient (both http and https)</li>
-<li>Bug 41612 - Loop nested in IF behaves erratically</li>
+<li>Bug 41612 - Loop nested in If Controller behaves erratically</li>
 <li>Bug 42232 - changing language clears UDV contents</li>
 <li>Jexl function did not allow variables</li>
 </ul>
diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index 3377905..cd884bb 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -1345,16 +1345,26 @@ setting is reset when a parent Loop Controller restarts.
 <component name="If Controller" index="&sect-num;.2.9"  width="358" height="131" screenshot="ifcontroller.png">
 	<description>
 		<p>The If Controller allows the user to control whether the test elements below it (its children) are run or not.</p>
+		<p>
+		Prior to JMeter 2.3RC3, the condition was evaluated for every runnable element contained in the controller.
+		This sometimes caused unexpected behaviour, so 2.3RC3 was changed to evaluate the condition only once on initial entry.
+		However, the original behaviour is also useful, so versions of JMeter after 2.3RC4 have an additional
+		option to select the original behaviour.
+		</p>
 	</description>
 <properties>
     <property name="Name" required="No">Descriptive name for this controller that is shown in the tree.</property>
 	<property name="Condition" required="Yes"><b>Javascript</b> code that returns "true" or "false"</property>
+	<property name="Evaluate for all children" required="Yes">
+	Should condition be evaluated for all children?
+	If not checked, then the condition is only evaluated on entry.
+	</property>
 </properties>
 	<p>Examples:
 		<ul>
 			<li>${COUNT} &lt; 10</li>
 			<li>"${VAR}" == "abcd"</li>
-			<li>"${JMeterThread.last_sample_ok}" == "true" (check if last sample succeeded)</li>
+			<li>${JMeterThread.last_sample_ok} (check if last sample succeeded)</li>
 		</ul>
 		If there is an error interpreting the code, the condition is assumed to be false, and a message is logged in jmeter.log.
 	</p>


[jmeter] 18/47: SVN is the new CVS

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 04430b04d19e267081087a5892507ff7ce457933
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 16:02:33 2007 +0000

    SVN is the new CVS
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577804 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: db43cc1e002bbecddab8c2d9a4bb203342488c4c
---
 xdocs/localising/index.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xdocs/localising/index.xml b/xdocs/localising/index.xml
index 3eebaa6..b17c53e 100644
--- a/xdocs/localising/index.xml
+++ b/xdocs/localising/index.xml
@@ -62,9 +62,9 @@ another tool, such as or <b>vi</b> or <b>Emacs</b>.
 <p>If you want to help with JMeter's translation process, start by reading this document. Then
 send a message to <a href="mailto:jmeter-dev@jakarta.apache.org">jmeter-dev@jakarta.apache.org</a>
 stating your intention. Surely one of the project contributors will be very happy to grab the current texts
-from CVS and send them to you. You'll receive a jar, zip, tar or tgz file that you'll need to unpack in your
+from SVN and send them to you. You'll receive a jar, zip, tar or tgz file that you'll need to unpack in your
 local disk.</p>
-<p>If you are familiar with CVS or you're brave, feel free to anonymously connect to the Jakarta CVS server
+<p>If you are familiar with SVN or you're brave, feel free to anonymously connect to the Jakarta SVN server
 and obtain the JMeter source yourself, as described in
 <a href="http://jakarta.apache.org/site/cvsindex.html">http://jakarta.apache.org/site/cvsindex.html</a>
 -- the files necessary to the translation process are all in the jakarta-jmeter/src directory.
@@ -76,7 +76,7 @@ you'll need to know where it is to start working with i18nEdit.</p>
 
 <section name="Providing the current texts to translators" anchor="provide">
 
-<p>If you have access to JMeter's CVS repository and you want to pack the files necessary for localisation
+<p>If you have access to JMeter's SVN repository and you want to pack the files necessary for localisation
 for sending to a translator, just go to the directory above the project root and issue the following command:<br/>
 <code>
 tar czf jakarta-jmeter-localisation.tgz `find jakarta-jmeter/src -name "*.properties" -o -name "*.metaprops"`
@@ -145,7 +145,7 @@ the project:
 <li>Enter the path to the src directory in the files submitted by the translator.</li>
 <li>Select the translator's target language.</li>
 <li>Press "Perform merge".</li>
-<li>Close i18nEdit and commit to CVS as usual (remember to Refresh your project if you're using Eclipse).</li>
+<li>Close i18nEdit and commit to SVN as usual (remember to Refresh your project if you're using Eclipse).</li>
 </ol>
 </p>
 


[jmeter] 02/47: Update branch/trunk history

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 5584d828894f7191074ac858f463c6f2d94d1963
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 9 20:19:34 2007 +0000

    Update branch/trunk history
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@574070 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: a32cb40cb4166ccdb05ddcede9dfe38f0c69f222
---
 STATUS | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/STATUS b/STATUS
index 7cc5309..6097d48 100644
--- a/STATUS
+++ b/STATUS
@@ -2,11 +2,15 @@ STATUS as at September 2007
 ======
 
 SVN status:
-- trunk is outdated, and contains some Java 1.5+ only code
-- branches/rel-2-2 is the current development branch for 2.2.x and 2.3.x (Java 1.4+)
+- trunk is for development of 2.3.1+
+- branches/rel-2-2 is the current development branch for 2.3 final only
 
 Branch history:
-rel-2-1:325546 was copied from trunk:325542
-rel-2-2:413997 was copied from rel-2-1:413996
+--------------
+
+rel-2-1:325546  created from trunk:325542
+rel-2-2:413997  created from rel-2-1:413996
+trunk:574067    moved to     branches/java1.5_prototype-was_trunk:574058
+trunk:574063    created from branches/rel-2-2:574062 
 
 sebb AT apache DOT org
\ No newline at end of file


[jmeter] 38/47: Document Statistical batch mode

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit c4ec158c00a6ad103908e76b8432cc668e7de946
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 13:33:43 2007 +0000

    Document Statistical batch mode
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578808 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 529e662d9da2cac26fb299145b7ff7df3228bca9
---
 xdocs/usermanual/remote-test.xml | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/xdocs/usermanual/remote-test.xml b/xdocs/usermanual/remote-test.xml
index 5855505..ca74bae 100644
--- a/xdocs/usermanual/remote-test.xml
+++ b/xdocs/usermanual/remote-test.xml
@@ -173,7 +173,18 @@ There are some JMeter properties that can be set to alter this behaviour.
     <li>Standard - send samples as soon as they are generated</li>
     <li>Hold - hold samples in an array until the end of a run. This may use a lot of memory on the server.</li>
     <li>Batch - send saved samples when either the count or time exceeds a threshold</li>
-    <li>Statistical - send a summary report when either the count or time exceeds a threshold</li>
+    <li>Statistical - send a summary sample when either the count or time exceeds a threshold. 
+    The samples are summarised by thread group name and sample label.
+    The following fields are accumulated:
+    <ul>
+    <li>elapsed time</li>
+    <li>latency</li>
+    <li>bytes</li>
+    <li>sample count</li>
+    <li>error count</li>
+    </ul>
+    Other fields that vary between samples are lost. 
+    </li>
     </ul>
 </ul>
 <p>The following properties apply to the Batch and Statistical modes:</p>


[jmeter] 30/47: Add sample count to response pane

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit ad5e4b51032fee911097f1f10981246209445a8d
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 15:06:22 2007 +0000

    Add sample count to response pane
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578454 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 5299b2606398f69f6557a71481f613ed12868e4f
---
 .../org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java         | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java b/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
index 8e42eaa..d884036 100644
--- a/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
+++ b/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
@@ -363,6 +363,7 @@ public class ViewResultsFullVisualizer extends AbstractVisualizer
 						statsBuff.append("Sample Start: ").append(startTime).append(NL);
 						statsBuff.append("Load time: ").append(res.getTime()).append(NL);
 						statsBuff.append("Size in bytes: ").append(res.getBytes()).append(NL);
+						statsBuff.append("Sample Count: ").append(res.getSampleCount()).append(NL);
 						statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
 						statsBuff = new StringBuffer(); //reset for reuse
 						


[jmeter] 25/47: Fix typo (bytesx => bytes)

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit b5e2402873634cf18438afec6eecdef78e31ab38
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 00:01:28 2007 +0000

    Fix typo (bytesx => bytes)
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578328 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: b152a740bedaff3266e91a3504a8854f1e268672
---
 extras/build.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extras/build.xml b/extras/build.xml
index 448803b..937d306 100644
--- a/extras/build.xml
+++ b/extras/build.xml
@@ -91,7 +91,7 @@
 			<!-- Force suitable defaults -->
 			<property name="jmeter.save.saveservice.output_format" value="xml"/>
 			<property name="jmeter.save.saveservice.assertion_results" value="all"/>
-			<property name="jmeter.save.saveservice.bytesx" value="true"/>
+			<property name="jmeter.save.saveservice.bytes" value="true"/>
 			<property name="file_format.testlog" value="${format}"/>
 			<property name="jmeter.save.saveservice.response_data.on_error" value="${funcMode}"/>
 		</jmeter>


[jmeter] 42/47: Update with current list of saveservice properties

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 12fae0f1139252c1d4f92ea41922171aabd4de88
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 21:25:49 2007 +0000

    Update with current list of saveservice properties
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578979 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: a5d2ba588cc16fbb319872137e8b9345c65c47df
---
 xdocs/usermanual/component_reference.xml | 90 ++++++++++++++++++++------------
 1 file changed, 56 insertions(+), 34 deletions(-)

diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index a96bc2b..45a0443 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -1674,40 +1674,62 @@ misnomer in this case.</p>
 <p>
 <code>
 <pre>
-    #---------------------------------------------------------------------------
-    # Results file configuration
-    #---------------------------------------------------------------------------
-    
-    # This section helps determine how result data will be saved.
-    # The commented out values are the defaults.
-    
-    # legitimate values: xml, csv, db.  Only xml and csv are currently supported.
-    jmeter.save.saveservice.output_format=csv
-    
-    # true when field should be saved; false otherwise
-    
-    # assertion_results_failure_message only affects CSV output
-    jmeter.save.saveservice.assertion_results_failure_message=true
-    jmeter.save.saveservice.data_type=true
-    jmeter.save.saveservice.label=true
-    jmeter.save.saveservice.response_code=true
-    jmeter.save.saveservice.response_data=false
-    jmeter.save.saveservice.response_message=false
-    jmeter.save.saveservice.successful=true
-    jmeter.save.saveservice.thread_name=true
-    jmeter.save.saveservice.time=true
-    
-    # legitimate values: none, ms, or a format suitable for SimpleDateFormat
-    #jmeter.save.saveservice.timestamp_format=ms
-    jmeter.save.saveservice.timestamp_format=MM/dd/yy HH:mm:ss
-    
-    # legitimate values: none, first, all
-    jmeter.save.saveservice.assertion_results=first
-    
-    # For use with Comma-separated value (CSV) files or other formats
-    # where the fields' values are separated by specified delimiters.
-    jmeter.save.saveservice.default_delimiter=|
-    jmeter.save.saveservice.print_field_names=true
+#---------------------------------------------------------------------------
+# Results file configuration
+#---------------------------------------------------------------------------
+
+# This section helps determine how result data will be saved.
+# The commented out values are the defaults.
+
+# legitimate values: xml, csv, db.  Only xml and csv are currently supported.
+#jmeter.save.saveservice.output_format=xml
+
+
+# true when field should be saved; false otherwise
+
+# assertion_results_failure_message only affects CSV output
+#jmeter.save.saveservice.assertion_results_failure_message=false
+#
+#jmeter.save.saveservice.data_type=true
+#jmeter.save.saveservice.label=true
+#jmeter.save.saveservice.response_code=true
+# response_data is not currently supported for CSV output
+#jmeter.save.saveservice.response_data=false
+# Save ResponseData for failed samples
+#jmeter.save.saveservice.response_data.on_error=false
+#jmeter.save.saveservice.response_message=true
+#jmeter.save.saveservice.successful=true
+#jmeter.save.saveservice.thread_name=true
+#jmeter.save.saveservice.time=true
+#jmeter.save.saveservice.subresults=true
+#jmeter.save.saveservice.assertions=true
+#jmeter.save.saveservice.latency=true
+#jmeter.save.saveservice.samplerData=false
+#jmeter.save.saveservice.responseHeaders=false
+#jmeter.save.saveservice.requestHeaders=false
+#jmeter.save.saveservice.encoding=false
+#jmeter.save.saveservice.bytes=true
+#jmeter.save.saveservice.url=false
+#jmeter.save.saveservice.filename=false
+#jmeter.save.saveservice.thread_counts=false
+#jmeter.save.saveservice.sample_count=false
+
+# Timestamp format
+# legitimate values: none, ms, or a format suitable for SimpleDateFormat
+#jmeter.save.saveservice.timestamp_format=ms
+#jmeter.save.saveservice.timestamp_format=MM/dd/yy HH:mm:ss
+
+# Put the start time stamp in logs instead of the end
+sampleresult.timestamp.start=true
+
+
+# legitimate values: none, first, all
+#jmeter.save.saveservice.assertion_results=none
+
+# For use with Comma-separated value (CSV) files or other formats
+# where the fields' values are separated by specified delimiters.
+#jmeter.save.saveservice.default_delimiter=,
+#jmeter.save.saveservice.print_field_names=false
 </pre>
 </code></p>
 <p>


[jmeter] 27/47: Disable SaveService version checks

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 7ce4ab6f5ee49512a116ddf197923fb5e522a1e7
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 00:50:24 2007 +0000

    Disable SaveService version checks
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578338 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 60fd35cdcb8b99f05f48e53f9b2a4e177ff73eed
---
 src/core/org/apache/jmeter/save/SaveService.java | 95 ++++++++++++------------
 1 file changed, 48 insertions(+), 47 deletions(-)

diff --git a/src/core/org/apache/jmeter/save/SaveService.java b/src/core/org/apache/jmeter/save/SaveService.java
index b6191cd..16fa232 100644
--- a/src/core/org/apache/jmeter/save/SaveService.java
+++ b/src/core/org/apache/jmeter/save/SaveService.java
@@ -34,17 +34,17 @@ import java.util.Properties;
 
 import java.nio.charset.Charset;
 import org.apache.jmeter.samplers.SampleResult;
-import org.apache.jmeter.save.converters.BooleanPropertyConverter;
-import org.apache.jmeter.save.converters.HashTreeConverter;
-import org.apache.jmeter.save.converters.IntegerPropertyConverter;
-import org.apache.jmeter.save.converters.LongPropertyConverter;
-import org.apache.jmeter.save.converters.MultiPropertyConverter;
-import org.apache.jmeter.save.converters.SampleResultConverter;
-import org.apache.jmeter.save.converters.SampleSaveConfigurationConverter;
-import org.apache.jmeter.save.converters.StringPropertyConverter;
-import org.apache.jmeter.save.converters.TestElementConverter;
-import org.apache.jmeter.save.converters.TestElementPropertyConverter;
-import org.apache.jmeter.save.converters.TestResultWrapperConverter;
+//import org.apache.jmeter.save.converters.BooleanPropertyConverter;
+//import org.apache.jmeter.save.converters.HashTreeConverter;
+//import org.apache.jmeter.save.converters.IntegerPropertyConverter;
+//import org.apache.jmeter.save.converters.LongPropertyConverter;
+//import org.apache.jmeter.save.converters.MultiPropertyConverter;
+//import org.apache.jmeter.save.converters.SampleResultConverter;
+//import org.apache.jmeter.save.converters.SampleSaveConfigurationConverter;
+//import org.apache.jmeter.save.converters.StringPropertyConverter;
+//import org.apache.jmeter.save.converters.TestElementConverter;
+//import org.apache.jmeter.save.converters.TestElementPropertyConverter;
+//import org.apache.jmeter.save.converters.TestResultWrapperConverter;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jorphan.collections.HashTree;
@@ -335,20 +335,20 @@ public class SaveService {
 		return rev;
 	}
 
-	private static void checkVersion(Class clazz, String expected) {
-
-		String actual = "*NONE*"; // $NON-NLS-1$
-		try {
-			actual = (String) clazz.getMethod("getVersion", null).invoke(null, null);
-			actual = extractVersion(actual);
-		} catch (Exception ignored) {
-			// Not needed
-		}
-		if (0 != actual.compareTo(expected)) {
-			versionsOK = false;
-			log.warn("Version mismatch: expected '" + expected + "' found '" + actual + "' in " + clazz.getName());
-		}
-	}
+//	private static void checkVersion(Class clazz, String expected) {
+//
+//		String actual = "*NONE*"; // $NON-NLS-1$
+//		try {
+//			actual = (String) clazz.getMethod("getVersion", null).invoke(null, null);
+//			actual = extractVersion(actual);
+//		} catch (Exception ignored) {
+//			// Not needed
+//		}
+//		if (0 != actual.compareTo(expected)) {
+//			versionsOK = false;
+//			log.warn("Version mismatch: expected '" + expected + "' found '" + actual + "' in " + clazz.getName());
+//		}
+//	}
 
     // Routines for TestSaveService
     static boolean checkPropertyVersion(){
@@ -361,28 +361,29 @@ public class SaveService {
 
     static boolean checkVersions() {
 		versionsOK = true;
-		checkVersion(BooleanPropertyConverter.class, "493779"); // $NON-NLS-1$
-		checkVersion(HashTreeConverter.class, "514283"); // $NON-NLS-1$
-		checkVersion(IntegerPropertyConverter.class, "493779"); // $NON-NLS-1$
-		checkVersion(LongPropertyConverter.class, "493779"); // $NON-NLS-1$
-		checkVersion(MultiPropertyConverter.class, "514283"); // $NON-NLS-1$
-		checkVersion(SampleResultConverter.class, "571992"); // $NON-NLS-1$
-
-        // Not built until later, so need to use this method:
-        try {
-            checkVersion(
-                    Class.forName("org.apache.jmeter.protocol.http.util.HTTPResultConverter"), // $NON-NLS-1$
-                    "514283"); // $NON-NLS-1$
-        } catch (ClassNotFoundException e) {
-            versionsOK = false;
-            log.warn(e.getLocalizedMessage());
-        }
-		checkVersion(StringPropertyConverter.class, "493779"); // $NON-NLS-1$
-		checkVersion(TestElementConverter.class, "549987"); // $NON-NLS-1$
-		checkVersion(TestElementPropertyConverter.class, "549987"); // $NON-NLS-1$
-		checkVersion(ScriptWrapperConverter.class, "514283"); // $NON-NLS-1$
-		checkVersion(TestResultWrapperConverter.class, "514283"); // $NON-NLS-1$
-        checkVersion(SampleSaveConfigurationConverter.class,"549936"); // $NON-NLS-1$
+		// Disable converter version checks as they are more of a nuisance than helpful
+//		checkVersion(BooleanPropertyConverter.class, "493779"); // $NON-NLS-1$
+//		checkVersion(HashTreeConverter.class, "514283"); // $NON-NLS-1$
+//		checkVersion(IntegerPropertyConverter.class, "493779"); // $NON-NLS-1$
+//		checkVersion(LongPropertyConverter.class, "493779"); // $NON-NLS-1$
+//		checkVersion(MultiPropertyConverter.class, "514283"); // $NON-NLS-1$
+//		checkVersion(SampleResultConverter.class, "571992"); // $NON-NLS-1$
+//
+//        // Not built until later, so need to use this method:
+//        try {
+//            checkVersion(
+//                    Class.forName("org.apache.jmeter.protocol.http.util.HTTPResultConverter"), // $NON-NLS-1$
+//                    "514283"); // $NON-NLS-1$
+//        } catch (ClassNotFoundException e) {
+//            versionsOK = false;
+//            log.warn(e.getLocalizedMessage());
+//        }
+//		checkVersion(StringPropertyConverter.class, "493779"); // $NON-NLS-1$
+//		checkVersion(TestElementConverter.class, "549987"); // $NON-NLS-1$
+//		checkVersion(TestElementPropertyConverter.class, "549987"); // $NON-NLS-1$
+//		checkVersion(ScriptWrapperConverter.class, "514283"); // $NON-NLS-1$
+//		checkVersion(TestResultWrapperConverter.class, "514283"); // $NON-NLS-1$
+//        checkVersion(SampleSaveConfigurationConverter.class,"549936"); // $NON-NLS-1$
 
         if (!PROPVERSION.equalsIgnoreCase(propertiesVersion)) {
 			log.warn("Bad _version - expected " + PROPVERSION + ", found " + propertiesVersion + ".");


[jmeter] 28/47: Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from XML files too

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit b23a6a69dc05c5158e74731692dadec3f1a34ddd
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 00:52:24 2007 +0000

    Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from XML files too
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578339 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 943b0d80e49a9c056bc988ba0437e7be02632dc4
---
 .../org/apache/jmeter/save/converters/SampleResultConverter.java     | 5 +++++
 xdocs/changes.xml                                                    | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java b/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
index 2bcf5c1..9ca75f1 100644
--- a/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
+++ b/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
@@ -78,6 +78,7 @@ public class SampleResultConverter extends AbstractCollectionConverter {
     private static final String ATT_RESPONSE_CODE_OLD = "rs"; //$NON-NLS-1$
     
     private static final String ATT_SUCCESS           = "s";  //$NON-NLS-1$
+    private static final String ATT_SAMPLE_COUNT      = "sc"; //$NON-NLS-1$
     private static final String ATT_TIME              = "t";  //$NON-NLS-1$
     private static final String ATT_TIME_STAMP        = "ts"; //$NON-NLS-1$
     private static final String ATT_THREADNAME        = "tn"; //$NON-NLS-1$
@@ -248,6 +249,9 @@ public class SampleResultConverter extends AbstractCollectionConverter {
 			writer.addAttribute(ATT_DATA_ENCODING, ConversionHelp.encode(res.getDataEncoding()));
 		if (save.saveBytes())
 			writer.addAttribute(ATT_BYTES, String.valueOf(res.getBytes()));
+        if (save.saveSampleCount()){
+        	writer.addAttribute(ATT_SAMPLE_COUNT, String.valueOf(res.getSampleCount()));
+        }
         if (save.saveThreadCounts()){// These cannot be restored
         	org.apache.jmeter.threads.ThreadGroup 
         	threadGroup=JMeterContextService.getContext().getThreadGroup();
@@ -357,6 +361,7 @@ public class SampleResultConverter extends AbstractCollectionConverter {
 				Converter.getLong(reader.getAttribute(ATT_TIME)));
 		res.setLatency(Converter.getLong(reader.getAttribute(ATT_LATENCY)));
 		res.setBytes(Converter.getInt(reader.getAttribute(ATT_BYTES)));
+		res.setSampleCount(Converter.getInt(reader.getAttribute(ATT_SAMPLE_COUNT),1)); // default is 1
         // ATT_GRP_THRDS and ATT_ALL_THRDS are write only
 	}
 
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index f773e42..15b37cc 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -40,7 +40,7 @@
 <li>Fixup broken jmeter-server script</li>
 <li>Bug 43364 - option to revert If Controller to pre 2.3RC3 behaviour</li>
 <li>Bug 43449 - Statistical Remote mode does not handle Latency</li>
-<li>Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from CSV files</li>
+<li>Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from files</li>
 </ul>
 
 <h4>Improvements</h4>


[jmeter] 11/47: Remove typo

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 40f87f4da14f1e03ffbd4f33cb3165125e025c25
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 10:06:25 2007 +0000

    Remove typo
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577234 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: bc643e0e84b20824c907438b2006c0f5993205b7
---
 .../org/apache/jmeter/timers/BeanShellTimerResources.properties         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties b/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
index 15d8a2b..2b9803c 100644
--- a/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
+++ b/src/components/org/apache/jmeter/timers/BeanShellTimerResources.properties
@@ -1,4 +1,4 @@
 displayName=BeanShell Timer
-scripting.displayName=BeanShellaa (variables: ctx vars)
+scripting.displayName=BeanShell (variables: ctx vars)
 script.displayName=Script
 script.shortDescription=Beanshell script to generate delay
\ No newline at end of file


[jmeter] 39/47: Set EOL=LF for shell scripts

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 7eb17f4e7f03d8bed37ccd4726f72abe7d282faa
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 14:07:24 2007 +0000

    Set EOL=LF for shell scripts
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578814 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: f8eee52a0d6b31a2e4a1e7d50ad1a8c9d7f8623e


[jmeter] 32/47: Listener file name is for read as well as write

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit fedf18bd88fdf59553fb7e0b1c33912788ad97aa
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 18:45:14 2007 +0000

    Listener file name is for read as well as write
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578474 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 7ba67113f42225ce366fb4abd4b3f83db61f87cb
---
 src/core/org/apache/jmeter/resources/messages.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/core/org/apache/jmeter/resources/messages.properties b/src/core/org/apache/jmeter/resources/messages.properties
index a11b8b2..f0e919a 100644
--- a/src/core/org/apache/jmeter/resources/messages.properties
+++ b/src/core/org/apache/jmeter/resources/messages.properties
@@ -186,7 +186,7 @@ file_visualizer_filename=Filename
 file_visualizer_flush=Flush
 file_visualizer_missing_filename=No output filename specified.
 file_visualizer_open=Open
-file_visualizer_output_file=Write All Data to a File
+file_visualizer_output_file=Write All Data to a File / Read from file
 file_visualizer_submit_data=Include Submitted Data
 file_visualizer_title=File Reporter
 file_visualizer_verbose=Verbose Output
@@ -634,7 +634,7 @@ save_responseheaders=Save Response Headers
 save_samplerdata=Save Sampler Data
 save_subresults=Save Sub Results
 save_success=Save Success
-save_samplecount=Save Sample Count
+save_samplecount=Save Sample and Error Counts
 save_threadcounts=Save Active Thread Counts
 save_threadname=Save Thread Name
 save_time=Save Elapsed Time


[jmeter] 04/47: Document https.default.protocol

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit f35e90e8b836d090e7f4cd44fed6fb7619ee8e3a
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 12 15:10:29 2007 +0000

    Document https.default.protocol
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@574986 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 6d48e56d5ea4aa79026c87b42bc824ef9bbd31a0
---
 bin/jmeter.properties                    | 5 +++++
 xdocs/usermanual/component_reference.xml | 7 +++++++
 xdocs/usermanual/get-started.xml         | 8 ++++++--
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/bin/jmeter.properties b/bin/jmeter.properties
index 940add9..a25d9c5 100644
--- a/bin/jmeter.properties
+++ b/bin/jmeter.properties
@@ -61,6 +61,11 @@ xml.parser=org.apache.xerces.parsers.SAXParser
 # The original behaviour can be enabled by setting the JMeter property:
 #https.sessioncontext.shared=true
 
+# Default HTTPS protocol level:
+#https.default.protocol=TLS
+# This may need to be changed here (or in user.properties) to:
+#https.default.protocol=SSLv3
+
 #---------------------------------------------------------------------------
 # Look and Feel configuration
 #---------------------------------------------------------------------------
diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index cbc8db3..6f3dafe 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -136,6 +136,13 @@ JMeter assumes the FTP server is listening on the default port.</property>
 https.sessioncontext.shared=true
 </pre>
         </p>
+        <p>
+        JMeter defaults to the SSL protocol level TLS.
+        If the server needs a different level, e.g. SSLv3, change the JMeter property, for example:
+<pre>
+https.default.protocol=SSLv3
+</pre> 
+        </p>
         <p>If the request uses cookies, then you will also need an
         <complink name="HTTP Cookie Manager"/>.  You can
         add either of these elements to the Thread Group or the HTTP Request.  If you have
diff --git a/xdocs/usermanual/get-started.xml b/xdocs/usermanual/get-started.xml
index b0ad289..25e771b 100644
--- a/xdocs/usermanual/get-started.xml
+++ b/xdocs/usermanual/get-started.xml
@@ -122,8 +122,12 @@ To enable Email support, add Sun's JavaMail packages and the activation packages
 <p>To test a web server using SSL encryption (HTTPS), JMeter requires that an
 implementation of SSL be provided, as is the case with Sun Java 1.4 and above.
 If your version of Java does not include SSL support, then it is possible to add an external implementation.
-Include the necessary encryption packages in JMeter's <a href="#classpath">classpath</a>.  Also, update <a href="#configuring_jmeter">jmeter.properties</a>
-to register the SSL Provider.</p>
+Include the necessary encryption packages in JMeter's <a href="#classpath">classpath</a>.  
+Also, update <a href="#configuring_jmeter">system.properties</a> to register the SSL Provider.</p>
+<p>
+JMeter defaults to protocol level TLS. This can be changed by editting the JMeter property 
+"https.default.protocol" in jmeter.properties or user.properties.
+</p>
 <p><b>JMeter is configured to accept all certificates,
 whether trusted or not, regardless of validity periods etc.</b>
 This is to allow the maximum flexibility in testing servers.</p>


[jmeter] 45/47: 2.3 final

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 197f9ec98f1a641ceff98402cab9f6e736c552cf
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 22:36:53 2007 +0000

    2.3 final
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/tags/v2_3@579002 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: b3372f69529e350494715eb32d3985625eae611a


[jmeter] 06/47: Synch recent doc updates

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit bc616e267dbae9be009be26d258a01651e639f71
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 12 17:33:08 2007 +0000

    Synch recent doc updates
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@575019 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 970e9b8d52a2e009ef3761c63076870d25a346df


[jmeter] 17/47: Document remote batching modes

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 1243234a5501b6592d40cd6262ea27c4a4d3c405
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 15:23:11 2007 +0000

    Document remote batching modes
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577795 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: fbe223510059c6a5645650ccec35a4f2a53a3cbc
---
 xdocs/usermanual/remote-test.xml | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/xdocs/usermanual/remote-test.xml b/xdocs/usermanual/remote-test.xml
index ad536e1..5855505 100644
--- a/xdocs/usermanual/remote-test.xml
+++ b/xdocs/usermanual/remote-test.xml
@@ -161,6 +161,29 @@ The chosen port will be logged in the server jmeter.log file (rmiregistry does n
 </p>
 </subsection>
 
+<subsection name="&sect-num;.4 Using sample batching" anchor="batchmode">
+<p>
+Listeners in the test plan send their results back to the client JMeter which writes the results to the specified files
+By default, samples are sent back as they are generated. This can place a large load on the network and the JMeter client.
+There are some JMeter properties that can be set to alter this behaviour.
+</p>
+<ul>
+<li>mode - sample sending mode - default is Standard</li>
+    <ul>
+    <li>Standard - send samples as soon as they are generated</li>
+    <li>Hold - hold samples in an array until the end of a run. This may use a lot of memory on the server.</li>
+    <li>Batch - send saved samples when either the count or time exceeds a threshold</li>
+    <li>Statistical - send a summary report when either the count or time exceeds a threshold</li>
+    </ul>
+</ul>
+<p>The following properties apply to the Batch and Statistical modes:</p>
+    <ul>
+    <li>num_sample_threshold - number of samples in a batch (default 100)</li>
+    <li>time_threshold - number of milliseconds to wait (default 60 seconds)</li>
+    </ul>
+</subsection>
+
+
 
 
 </section>


[jmeter] 33/47: Update some screenshots; document new XML save file attributes

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 12cadc881a009b9c469a78d67af5ad10d976b22b
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 23 00:58:58 2007 +0000

    Update some screenshots; document new XML save file attributes
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578533 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: ec7ec55ee5d6721dcbae4a391dd9d5e52c4217d9
---
 xdocs/usermanual/component_reference.xml | 53 +++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 22 deletions(-)

diff --git a/xdocs/usermanual/component_reference.xml b/xdocs/usermanual/component_reference.xml
index bb87532..a96bc2b 100644
--- a/xdocs/usermanual/component_reference.xml
+++ b/xdocs/usermanual/component_reference.xml
@@ -75,7 +75,7 @@ JMeter assumes the FTP server is listening on the default port.</property>
 
 </component>
 
-<component name="HTTP Request" index="&sect-num;.1.2"  width="558" height="600" screenshot="webtest/http-request.png">
+<component name="HTTP Request" index="&sect-num;.1.2"  width="688" height="592" screenshot="webtest/http-request.png">
 
 <description>
         <p>This sampler lets you send an HTTP/HTTPS request to a web server.  It
@@ -178,6 +178,9 @@ https.default.protocol=SSLv3
 		</property>
 		<property name="Use KeepAlive" required="Yes">JMeter sets the Connection: keep-alive header. This does not work properly with the default HTTP implementation, as connection re-use is not under user-control. 
                   It does work with the Jakarta httpClient implementation.</property>
+        <property name="Use multipart/form-data for HTTP POST" required="Yes">
+        Use a multipart/form-data or application/x-www-form-urlencoded post request
+        </property>
         <property name="Path" required="Yes">The path to resource (for example, /servlets/myServlet). If the
 resource requires query string parameters, add them below in the
 "Send Parameters With the Request" section.</property>
@@ -525,7 +528,7 @@ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 
 </component>
 
-<component name="LDAP Extended Request" index="&sect-num;.1.8"  width="594" height="309" screenshot="ldapext_request.png">
+<component name="LDAP Extended Request" index="&sect-num;.1.8"  width="595" height="542" screenshot="ldapext_request.png">
   <description>This Sampler can send all 8 different LDAP request to an LDAP server. It is an extended version of the LDAP sampler,
   therefore it is harder to configure, but can be made much closer resembling a real LDAP session.
     <p>If you are going to send multiple requests to the same LDAP server, consider
@@ -1621,13 +1624,13 @@ They also provide means to view, save, and read saved test results.
 The saving and reading of test results is generic.  The various
 listeners have a panel whereby one can specify the file to
 which the results will be written (or read from).
-By default, the results are stored as CSV
+By default, the results are stored as XML
 files, typically with a ".jtl" extension.  Storing as CSV is the most efficient option, but is less detailed than XML (the other available option).</p>
 <note>To read existing results and display them, use the file panel Browse button to open the file.
 </note>
 <p>Results can be read from XML or CSV format files.
-When reading from CSV results files, the header (if present) is ignored.
-<b>In order to interpret a CSV file correctly, the appropriate properties must be set in jmeter.properties.</b>
+When reading from CSV results files, the header (if present) is used to determine which fields are present.
+<b>In order to interpret a header-less CSV file correctly, the appropriate properties must be set in jmeter.properties.</b>
 </p>
 <p><b>Listeners can use a lot of memory if there are a lot of samples.</b>
 Most of the listeners currently keep a copy of every sample in their scope, apart from:
@@ -1642,16 +1645,14 @@ Most of the listeners currently keep a copy of every sample in their scope, apar
 </ul>
 <p>To minimise the amount of memory needed, use the Simple Data Writer, and use the CSV format.</p>
 <p>To change the default format, find the following line in jmeter.properties:</p>
-<p>jmeter.save.saveservice.output_format=csv</p>
-<p>Change "csv" to "xml" for greater detail.</p>
+<p>jmeter.save.saveservice.output_format=</p>
 <p>
 The information to be saved is configurable.  For maximum information, choose "xml" as the format and specify "Functional Test Mode" on the Test Plan element.  If this box is not checked, the default saved
 data includes a time stamp (the number of milliseconds since midnight,
 January 1, 1970 UTC), the data type, the thread name, the label, the
 response time, message, and code, and a success indicator.  If checked, all information, including the full response data will be logged.</p>
 <p>
-One can get a more selective set of information my modifying the
-jmeter.properties file.  The following example indicates how to set
+The following example indicates how to set
 properties to get a vertical bar ("|") delimited format that will
 output results like:.</p>
 <p>
@@ -1728,7 +1729,7 @@ The internal viewing capabilities are described in the following subsections.</p
 
 </description>
 
-<component name="Sample Result Save Configuration" index="&sect-num;.3.1"  width="767" height="252" screenshot="sample_result_config.png">
+<component name="Sample Result Save Configuration" index="&sect-num;.3.1"  width="767" height="276" screenshot="sample_result_config.png">
 <description>
 <p>
 Listeners can be configured to save different items to the result log files (JTL) by using the Config popup as shown below.
@@ -1736,16 +1737,21 @@ The defaults are defined as described in the previous section.
 </p>
 <p>Meaning of the sample attributes in the log files:</p>
 <ul>
-<li> t - elapsed time (ms)</li>
-<li>lt - latency = time to initial response (ms)</li>
-<li>ts - timestamp (ms since 1970)</li>
-<li> s - successful (true/false)</li>
+<li>by - bytes in responses</li>
+<li>de - data encoding</li>
+<li>dt - data type</li>
+<li>ec - error count (0 or 1, unless multiple samples are aggregated)</li>
 <li>lb - label</li>
+<li>lt - latency = time to initial response (ms)</li>
+<li>na - number of active threads in all thread groups</li>
+<li>ng - number of active threads in current thread group</li>
 <li>rc - response code (e.g. 200)</li>
 <li>rm - response message (e.g. OK)</li>
+<li> s - successful (true/false)</li>
+<li>sc - sample count (1, unless multiple samples are aggregated)</li>
+<li> t - elapsed time (ms)</li>
 <li>tn - thread name</li>
-<li>dt - data type</li>
-<li>de - data encoding</li>
+<li>ts - timestamp (ms since 1970)</li>
 </ul>
 </description>
 </component>
@@ -1864,17 +1870,20 @@ The remaining samples took longer than this.</li>
 </description>
 </component>
 
-<component name="View Results in Table" index="&sect-num;.3.8"  width="643" height="678" screenshot="table_results.png">
-<description>This visualizer creates a row for every sample result.  Each sample result's URL,
-time in milliseconds, success/failure is displayed.  Like the <complink name="View Results Tree"/>,
-this visualizer uses a lot of memory. The last column shows the number of bytes for the
-response from the server.</description>
+<component name="View Results in Table" index="&sect-num;.3.8"  width="658" height="700" screenshot="table_results.png">
+<description>This visualizer creates a row for every sample result.  
+Like the <complink name="View Results Tree"/>, this visualizer uses a lot of memory.
+</description>
 </component>
 
 <component name="Simple Data Writer" index="&sect-num;.3.9"  width="649" height="157" screenshot="simpledatawriter.png">
 <description>This listener can record results to a file
 but not to the UI.  It is meant to provide an efficient means of
-recording data by eliminating GUI overhead.</description>
+recording data by eliminating GUI overhead.
+When running in non-GUI mode, the -l flag can be used to create a data file.
+The fields to save are defined by JMeter properties.
+See the jmeter.properties file for details.
+</description>
 </component>
 
 <component name="Monitor Results" index="&sect-num;.3.10"  width="762" height="757" screenshot="monitor_screencap.png">


[jmeter] 29/47: BatchTest: remove latency from XML output; add sampleCount to CSV and XML

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 68d0c89091a4ce2a977a63ebfd72a03185c8a046
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 11:09:56 2007 +0000

    BatchTest: remove latency from XML output; add sampleCount to CSV and XML
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578406 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 1d2b608d26397dc1fc924742442c7d03263de6c1
---
 bin/testfiles/BatchTestLocal.csv | 38 +++++++++++++++++++-------------------
 bin/testfiles/BatchTestLocal.jmx |  6 ++++--
 bin/testfiles/BatchTestLocal.xml | 36 ++++++++++++++++++------------------
 3 files changed, 41 insertions(+), 39 deletions(-)

diff --git a/bin/testfiles/BatchTestLocal.csv b/bin/testfiles/BatchTestLocal.csv
index 3d240ba..0cf7fa2 100644
--- a/bin/testfiles/BatchTestLocal.csv
+++ b/bin/testfiles/BatchTestLocal.csv
@@ -1,19 +1,19 @@
-label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,grpThreads,allThreads,URL,Filename
-Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,
-Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,
-Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,
-If Test,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,
-Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,
-Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,
-Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,
-Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,
-Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,
+label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,grpThreads,allThreads,URL,Filename,SampleCount
+Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1
+Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1
+Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1
+If Test,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
+Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
+Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
+Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
+Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
diff --git a/bin/testfiles/BatchTestLocal.jmx b/bin/testfiles/BatchTestLocal.jmx
index afcccee..b9e90fc 100644
--- a/bin/testfiles/BatchTestLocal.jmx
+++ b/bin/testfiles/BatchTestLocal.jmx
@@ -232,6 +232,7 @@
               <url>true</url>
               <fileName>true</fileName>
               <threadCounts>true</threadCounts>
+              <sampleCount>true</sampleCount>
             </value>
             <name>saveConfig</name>
           </objProp>
@@ -243,7 +244,7 @@
           <objProp>
             <value class="SampleSaveConfiguration">
               <time>false</time>
-              <latency>true</latency>
+              <latency>false</latency>
               <timestamp>false</timestamp>
               <success>true</success>
               <label>true</label>
@@ -267,6 +268,7 @@
               <url>true</url>
               <fileName>true</fileName>
               <threadCounts>true</threadCounts>
+              <sampleCount>true</sampleCount>
             </value>
             <name>saveConfig</name>
           </objProp>
@@ -278,7 +280,7 @@
           <objProp>
             <value class="SampleSaveConfiguration">
               <time>true</time>
-              <latency>true</latency>
+              <latency>false</latency>
               <timestamp>true</timestamp>
               <success>true</success>
               <label>true</label>
diff --git a/bin/testfiles/BatchTestLocal.xml b/bin/testfiles/BatchTestLocal.xml
index c005b7d..d7cfcea 100644
--- a/bin/testfiles/BatchTestLocal.xml
+++ b/bin/testfiles/BatchTestLocal.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <testResults version="1.2">
-<sample lt="0" s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" ng="1" na="1">
+<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String">ResultData</responseData>
@@ -8,7 +8,7 @@
   <samplerData class="java.lang.String">SamplerData</samplerData>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" ng="1" na="1">
+<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String">ResultData</responseData>
@@ -16,7 +16,7 @@
   <samplerData class="java.lang.String">SamplerData</samplerData>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" ng="1" na="1">
+<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String">ResultData</responseData>
@@ -24,105 +24,105 @@
   <samplerData class="java.lang.String">SamplerData</samplerData>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="If Test" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="If Test" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample lt="0" s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" ng="1" na="1">
+<sample s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>


[jmeter] 31/47: Bug 43450 - add save/restore of error count; fix Calculator to use error count

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 816dbab14199edeeee56d84e4143e43486d7025c
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sat Sep 22 18:14:53 2007 +0000

    Bug 43450 - add save/restore of error count; fix Calculator to use error count
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578467 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: b3b6e7c8ee281111b24ab5af482901bb6fa1d3e9
---
 bin/testfiles/BatchTestLocal.csv                   | 38 +++++++++---------
 bin/testfiles/BatchTestLocal.xml                   | 36 ++++++++---------
 .../visualizers/ViewResultsFullVisualizer.java     |  1 +
 .../org/apache/jmeter/samplers/SampleResult.java   | 32 ++++++++++++++-
 .../jmeter/samplers/StatisticalSampleResult.java   | 46 +++++++++++++++++-----
 .../org/apache/jmeter/save/OldSaveService.java     | 21 ++++++++--
 .../save/converters/SampleResultConverter.java     |  3 ++
 src/core/org/apache/jmeter/util/Calculator.java    | 12 +++---
 xdocs/changes.xml                                  |  2 +-
 9 files changed, 133 insertions(+), 58 deletions(-)

diff --git a/bin/testfiles/BatchTestLocal.csv b/bin/testfiles/BatchTestLocal.csv
index 0cf7fa2..a207b02 100644
--- a/bin/testfiles/BatchTestLocal.csv
+++ b/bin/testfiles/BatchTestLocal.csv
@@ -1,19 +1,19 @@
-label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,grpThreads,allThreads,URL,Filename,SampleCount
-Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1
-Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1
-Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1
-If Test,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
-Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
-Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
-Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
-Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,,1
-Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1
+label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,grpThreads,allThreads,URL,Filename,SampleCount,ErrorCount
+Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1,0
+Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1,0
+Java 1,200,OK,Thread Group 1-1,text,true,,10,1,1,null,,1,0
+If Test,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Loop,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Module,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,,1,1
+Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,,1,1
+Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Java If once 1,,,Thread Group 1-1,,false,,0,1,1,null,,1,1
+Java If once 2,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
+Java If all 1,,,Thread Group 1-1,,false,,0,1,1,null,,1,1
+Java OK,200,OK,Thread Group 1-1,,true,,0,1,1,null,,1,0
diff --git a/bin/testfiles/BatchTestLocal.xml b/bin/testfiles/BatchTestLocal.xml
index d7cfcea..5a45676 100644
--- a/bin/testfiles/BatchTestLocal.xml
+++ b/bin/testfiles/BatchTestLocal.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <testResults version="1.2">
-<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ng="1" na="1">
+<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String">ResultData</responseData>
@@ -8,7 +8,7 @@
   <samplerData class="java.lang.String">SamplerData</samplerData>
   <null/>
 </sample>
-<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ng="1" na="1">
+<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String">ResultData</responseData>
@@ -16,7 +16,7 @@
   <samplerData class="java.lang.String">SamplerData</samplerData>
   <null/>
 </sample>
-<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ng="1" na="1">
+<sample s="true" lb="Java 1" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="10" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String">ResultData</responseData>
@@ -24,105 +24,105 @@
   <samplerData class="java.lang.String">SamplerData</samplerData>
   <null/>
 </sample>
-<sample s="true" lb="If Test" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="If Test" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Loop" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Module" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="false" lb="Java If once 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Java If once 2" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="false" lb="Java If all 1" rc="" rm="" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="1" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
   <responseFile class="java.lang.String"></responseFile>
   <null/>
 </sample>
-<sample s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ng="1" na="1">
+<sample s="true" lb="Java OK" rc="200" rm="OK" tn="Thread Group 1-1" dt="" by="0" sc="1" ec="0" ng="1" na="1">
   <responseHeader class="java.lang.String"></responseHeader>
   <requestHeader class="java.lang.String"></requestHeader>
   <responseData class="java.lang.String"/>
diff --git a/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java b/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
index d884036..ac34f54 100644
--- a/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
+++ b/src/components/org/apache/jmeter/visualizers/ViewResultsFullVisualizer.java
@@ -364,6 +364,7 @@ public class ViewResultsFullVisualizer extends AbstractVisualizer
 						statsBuff.append("Load time: ").append(res.getTime()).append(NL);
 						statsBuff.append("Size in bytes: ").append(res.getBytes()).append(NL);
 						statsBuff.append("Sample Count: ").append(res.getSampleCount()).append(NL);
+						statsBuff.append("Error Count: ").append(res.getErrorCount()).append(NL);
 						statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
 						statsBuff = new StringBuffer(); //reset for reuse
 						
diff --git a/src/core/org/apache/jmeter/samplers/SampleResult.java b/src/core/org/apache/jmeter/samplers/SampleResult.java
index c00a34c..331e34b 100644
--- a/src/core/org/apache/jmeter/samplers/SampleResult.java
+++ b/src/core/org/apache/jmeter/samplers/SampleResult.java
@@ -820,13 +820,41 @@ public class SampleResult implements Serializable {
 	/**
 	 * return the sample count. by default, the value is 1.
 	 * 
-	 * @return
+	 * @return the count of samples
 	 */
 	public int getSampleCount() {
 		return sampleCount;
 	}
 
 	/**
+	 * Returns the count of errors.
+	 * 
+	 * @return 0 - or 1 if the sample failed
+	 */
+	public int getErrorCount(){
+		return success ? 0 : 1;
+	}
+	
+	public void setErrorCount(int i){// for reading from CSV files
+		// ignored currently
+	}
+	/*
+	 * TODO: error counting needs to be sorted out after 2.3 final.
+	 * At present the Statistical Sampler tracks errors separately
+	 * It would make sense to move the error count here, but this would
+	 * mean lots of changes.
+	 * It's also tricky maintaining the count - it can't just be incremented/decremented
+	 * when the success flag is set as this may be done multiple times.
+	 * The work-round for now is to do the work in the StatisticalSampleResult,
+	 * which overrides this method.
+	 * Note that some JMS samplers also create samples with > 1 sample count
+	 * Also the Transaction Controller probably needs to be changed to do
+	 * proper sample and error accounting.
+	 * The purpose of this work-round is to allow at least minimal support for
+	 * errors in remote statistical batch mode.
+	 * 
+	 */
+	/**
 	 * In the event the sampler does want to pass back the actual contents, we
 	 * still want to calculate the throughput. The bytes is the bytes of the
 	 * response data.
@@ -840,7 +868,7 @@ public class SampleResult implements Serializable {
 	/**
 	 * return the bytes returned by the response.
 	 * 
-	 * @return
+	 * @return number of bytes in response
 	 */
 	public int getBytes() {
 		return bytes == 0 ? responseData.length : bytes;
diff --git a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
index e0f5fac..81529fa 100644
--- a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
+++ b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
@@ -21,23 +21,37 @@ package org.apache.jmeter.samplers;
 import java.io.Serializable;
 
 /**
- * @author Lars Krog-Jensen
- *         Created: 2005-okt-04
+ * Aggregates sample results for use by the Statistical remote batch mode.
+ * Samples are aggregated by the key defined by getKey().
+ * TODO: merge error count into parent class? 
  */
 public class StatisticalSampleResult extends SampleResult implements
 		Serializable {
     
-	private static final long serialVersionUID = 23L;
+	private static final long serialVersionUID = 24L;
 
 	private int errorCount;
 
     public StatisticalSampleResult(){// May be called by XStream
     }
     
+	/**
+	 * Allow OldSaveService to generate a suitable result when sample/error counts have been saved.
+	 * 
+	 * @deprecated Needs to be replaced when multiple sample results are sorted out
+	 * 
+	 * @param stamp
+	 * @param elapsed
+	 */
+	public StatisticalSampleResult(long stamp, long elapsed) {
+		super(stamp, elapsed);
+	}
+
 	public StatisticalSampleResult(SampleResult res) {
-		// Copy data that is shared between samples:
+		// Copy data that is shared between samples (i.e. the key items):
 		setSampleLabel(res.getSampleLabel());
 		setThreadName(res.getThreadName());
+
 		setSuccessful(true); // Assume result is OK
 		setSampleCount(0); // because we add the sample count in later
 	}
@@ -51,6 +65,7 @@ public class StatisticalSampleResult extends SampleResult implements
 		// Add Error Counter
 		if (!res.isSuccessful()) {
 			errorCount++;
+			this.setSuccessful(false);
 		}
 
 		// Set start/end times
@@ -73,14 +88,27 @@ public class StatisticalSampleResult extends SampleResult implements
 		return getEndTime();
 	}
 
-	public int getErrorCount() {
+	public int getErrorCount() {// Overrides SampleResult
 		return errorCount;
 	}
 
-	public static String getKey(SampleEvent event) {
-		String key = event.getResult().getSampleLabel() + "-"
-				+ event.getThreadGroup();
+	public void setErrorCount(int e) {// for reading CSV files
+		errorCount = e;
+	}
 
-		return key;
+	/**
+	 * Generates the key to be used for aggregating samples as follows:<br/>
+	 * <code>sampleLabel</code> "-" <code>threadGroup</code>
+	 * 
+	 * N.B. the key should agree with the fixed items that are saved in the sample.
+	 * 
+	 * @param event sample event whose key is to be calculated
+	 * @return the key to use for aggregating samples
+	 */
+	public static String getKey(SampleEvent event) {
+		SampleResult result = event.getResult();
+		StringBuffer sb = new StringBuffer(80);
+		sb.append(result.getSampleLabel()).append("-").append(result.getThreadName());
+		return sb.toString();
 	}
 }
diff --git a/src/core/org/apache/jmeter/save/OldSaveService.java b/src/core/org/apache/jmeter/save/OldSaveService.java
index c97742b..c950df8 100644
--- a/src/core/org/apache/jmeter/save/OldSaveService.java
+++ b/src/core/org/apache/jmeter/save/OldSaveService.java
@@ -43,6 +43,7 @@ import org.apache.avalon.framework.configuration.DefaultConfigurationSerializer;
 import org.apache.jmeter.assertions.AssertionResult;
 import org.apache.jmeter.samplers.SampleResult;
 import org.apache.jmeter.samplers.SampleSaveConfiguration;
+import org.apache.jmeter.samplers.StatisticalSampleResult;
 import org.apache.jmeter.testelement.TestElement;
 import org.apache.jmeter.testelement.property.CollectionProperty;
 import org.apache.jmeter.testelement.property.JMeterProperty;
@@ -101,6 +102,7 @@ public final class OldSaveService {
     private static final String CSV_THREAD_COUNT1 = "grpThreads"; // $NON-NLS-1$
     private static final String CSV_THREAD_COUNT2 = "allThreads"; // $NON-NLS-1$
     private static final String CSV_SAMPLE_COUNT = "SampleCount"; // $NON-NLS-1$
+    private static final String CSV_ERROR_COUNT = "ErrorCount"; // $NON-NLS-1$
     private static final String CSV_URL = "URL"; // $NON-NLS-1$
     private static final String CSV_FILENAME = "Filename"; // $NON-NLS-1$
     private static final String CSV_LATENCY = "Latency"; // $NON-NLS-1$
@@ -185,7 +187,11 @@ public final class OldSaveService {
 				elapsed = Long.parseLong(text);
 			}
 
-			result = new SampleResult(timeStamp, elapsed);
+			if (saveConfig.saveSampleCount()) {
+				result = new StatisticalSampleResult(timeStamp, elapsed);
+			} else {
+				result = new SampleResult(timeStamp, elapsed);
+			}
 
 			if (saveConfig.saveLabel()) {
 				field = LABEL;
@@ -260,10 +266,13 @@ public final class OldSaveService {
                 result.setEncodingAndType(text);
             }
 
-            if (saveConfig.saveEncoding()) {
+            if (saveConfig.saveSampleCount()) {
             	field = CSV_SAMPLE_COUNT;
                 text = parts[i++];
                 result.setSampleCount(Integer.parseInt(text));
+            	field = CSV_ERROR_COUNT;
+                text = parts[i++];
+                result.setErrorCount(Integer.parseInt(text));
             }
 
             
@@ -378,6 +387,8 @@ public final class OldSaveService {
 		if (saveConfig.saveSampleCount()) {
 			text.append(CSV_SAMPLE_COUNT);
 			text.append(delim);
+			text.append(CSV_ERROR_COUNT);
+			text.append(delim);
 		}
 
 		String resultString = null;
@@ -414,7 +425,9 @@ public final class OldSaveService {
             // Both these are needed in the list even though they set the same variable
             headerLabelMethods.put(CSV_THREAD_COUNT1,new Functor("setThreadCounts"));
             headerLabelMethods.put(CSV_THREAD_COUNT2,new Functor("setThreadCounts"));
+            // Both these are needed in the list even though they set the same variable
             headerLabelMethods.put(CSV_SAMPLE_COUNT, new Functor("setSampleCount"));
+            headerLabelMethods.put(CSV_ERROR_COUNT, new Functor("setSampleCount"));
 	}
 
 	/**
@@ -592,9 +605,11 @@ public final class OldSaveService {
             text.append(delimiter);
         }
 
-    	if (saveConfig.saveSampleCount()) {
+    	if (saveConfig.saveSampleCount()) {// Need both sample and error count to be any use
     		text.append(sample.getSampleCount());
     		text.append(delimiter);
+    		text.append(sample.getErrorCount());
+    		text.append(delimiter);
     	}
     
     	String resultString = null;
diff --git a/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java b/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
index 9ca75f1..4031f6f 100644
--- a/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
+++ b/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
@@ -64,6 +64,7 @@ public class SampleResultConverter extends AbstractCollectionConverter {
     private static final String ATT_BYTES             = "by"; //$NON-NLS-1$
     private static final String ATT_DATA_ENCODING     = "de"; //$NON-NLS-1$
     private static final String ATT_DATA_TYPE         = "dt"; //$NON-NLS-1$
+    private static final String ATT_ERROR_COUNT      = "ec"; //$NON-NLS-1$
     private static final String ATT_LABEL             = "lb"; //$NON-NLS-1$
     private static final String ATT_LATENCY           = "lt"; //$NON-NLS-1$
 
@@ -251,6 +252,7 @@ public class SampleResultConverter extends AbstractCollectionConverter {
 			writer.addAttribute(ATT_BYTES, String.valueOf(res.getBytes()));
         if (save.saveSampleCount()){
         	writer.addAttribute(ATT_SAMPLE_COUNT, String.valueOf(res.getSampleCount()));
+        	writer.addAttribute(ATT_ERROR_COUNT, String.valueOf(res.getErrorCount()));
         }
         if (save.saveThreadCounts()){// These cannot be restored
         	org.apache.jmeter.threads.ThreadGroup 
@@ -362,6 +364,7 @@ public class SampleResultConverter extends AbstractCollectionConverter {
 		res.setLatency(Converter.getLong(reader.getAttribute(ATT_LATENCY)));
 		res.setBytes(Converter.getInt(reader.getAttribute(ATT_BYTES)));
 		res.setSampleCount(Converter.getInt(reader.getAttribute(ATT_SAMPLE_COUNT),1)); // default is 1
+		res.setErrorCount(Converter.getInt(reader.getAttribute(ATT_ERROR_COUNT),0)); // default is 0
         // ATT_GRP_THRDS and ATT_ALL_THRDS are write only
 	}
 
diff --git a/src/core/org/apache/jmeter/util/Calculator.java b/src/core/org/apache/jmeter/util/Calculator.java
index b118d6e..175dc0e 100644
--- a/src/core/org/apache/jmeter/util/Calculator.java
+++ b/src/core/org/apache/jmeter/util/Calculator.java
@@ -94,7 +94,7 @@ public class Calculator {
     public void addSample(SampleResult res) {
         addBytes(res.getBytes());
         addValue(res.getTime(),res.getSampleCount());
-        if (!res.isSuccessful()) errors++;
+        errors+=res.getErrorCount(); // account for multiple samples
         if (startTime == 0){
             startTime=res.getStartTime();
         }
@@ -170,7 +170,7 @@ public class Calculator {
      * calculates the average page size, which means divide the bytes by number
      * of samples.
      * 
-     * @return
+     * @return average page size
      */
     public double getPageSize() {
         if (count > 0 && bytes > 0) {
@@ -182,11 +182,11 @@ public class Calculator {
     /**
      * Throughput in bytes / second
      * 
-     * @return
+     * @return throughput in bytes/second
      */
     public double getBytesPerSecond() {
         if (elapsedTime > 0) {
-            return bytes / ((double) elapsedTime / 1000);
+            return bytes / ((double) elapsedTime / 1000); // 1000 = millisecs/sec
         }
         return 0.0;
     }
@@ -194,10 +194,10 @@ public class Calculator {
     /**
      * Throughput in kilobytes / second
      * 
-     * @return
+     * @return Throughput in kilobytes / second
      */
     public double getKBPerSecond() {
-        return getBytesPerSecond() / 1024;
+        return getBytesPerSecond() / 1024; // 1024=bytes per kb
     }
 
 }
\ No newline at end of file
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 15b37cc..ffc284c 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -40,7 +40,7 @@
 <li>Fixup broken jmeter-server script</li>
 <li>Bug 43364 - option to revert If Controller to pre 2.3RC3 behaviour</li>
 <li>Bug 43449 - Statistical Remote mode does not handle Latency</li>
-<li>Bug 43450 (partial fix) - Allow SampleCount to be saved/restored from files</li>
+<li>Bug 43450 (partial fix) - Allow SampleCount and ErrorCount to be saved to/restored from files</li>
 </ul>
 
 <h4>Improvements</h4>


[jmeter] 41/47: Synch doc changes

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 1ab316cd3c59940c390a6c06bd5a7c75f8787641
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 15:47:28 2007 +0000

    Synch doc changes
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578860 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 263dd96a99f7ffc5a03d27ea1841a2cc572d68a2


[jmeter] 03/47: Ensure uncaught exceptions are logged

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit cf0fc036658aa6f8e853fd69888a64a9ac4b506b
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Tue Sep 11 20:27:02 2007 +0000

    Ensure uncaught exceptions are logged
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@574689 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 59fadd0d6b1b922e2f58a716520f0434d071420f
---
 .../org/apache/jmeter/engine/StandardJMeterEngine.java   | 16 +++++++++++++++-
 xdocs/changes.xml                                        |  1 +
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java b/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
index b4c4b96..422fad6 100644
--- a/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
+++ b/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
@@ -176,9 +176,23 @@ public class StandardJMeterEngine implements JMeterEngine, JMeterThreadMonitor,
 		getTestTree().traverse(compiler);
 	}
 
+	// TODO: in Java1.5, perhaps we can use Thread.setUncaughtExceptionHandler() instead
+	private static class MyThreadGroup extends java.lang.ThreadGroup{
+	    public MyThreadGroup(String s) {
+	        super(s);
+	      }
+	      
+	      public void uncaughtException(Thread t, Throwable e) {
+	    	if (!(e instanceof ThreadDeath)) {
+	    		log.error("Uncaught exception: ", e);
+	    		System.err.println("Uncaught Exception " + e + ". See log file for details.");
+	    	}
+	      }
+
+	}
 	public void runTest() throws JMeterEngineException {
 		try {
-			runningThread = new Thread(this);
+			runningThread = new Thread(new MyThreadGroup("JMeterThreadGroup"),this);
 			runningThread.start();
 		} catch (Exception err) {
 			stopTest();
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index d4c8321..1b6192b 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -44,6 +44,7 @@
 <li>Add nameSpace option to XPath extractor</li>
 <li>Add NULL parameter option to JDBC sampler</li>
 <li>Add documentation links for Rhino and BeanShell to functions; clarify variables and properties</li>
+<li>Ensure uncaught exceptions are logged</li>
 </ul>
 
 <h4>Fixes since 2.3RC3</h4>


[jmeter] 09/47: Document change to jmeter-server

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit ffbf7998fb8ca894c224a09aa8051967ebe0cdc7
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 08:54:42 2007 +0000

    Document change to jmeter-server
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577205 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 1ffd2c26a0bef3412715a662118d3eabfb6dce93
---
 xdocs/changes.xml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 1b6192b..aa1e008 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -37,6 +37,7 @@
 <li>If Java HTTP sampler sees null ResponseMessage, replace with HTTP header</li>
 <li>Bug 43332 - 2.3RC4 does not clear Guis based on TestBean</li>
 <li>Bug 42948 - Problems with Proxy gui table fields in Java 1.6</li>
+<li>Fixup broken jmeter-server script</li>
 </ul>
 
 <h4>Improvements</h4>


[jmeter] 43/47: Add svn revision to jar manifests Insist on jmeter.version and svn.revision definitions when building a distribution Derive svn revision automatically if possible, but allow command-line definition if necessary

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit ba376571e2b6e543e28362ce84cae17c2f982ed5
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 21:33:35 2007 +0000

    Add svn revision to jar manifests
    Insist on jmeter.version and svn.revision definitions when building a distribution
    Derive svn revision automatically if possible, but allow command-line definition if necessary
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578983 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 6d596e907e23dbbd95f18e68cf52fba5871b9b3d
---
 build.xml | 80 +++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 47 insertions(+), 33 deletions(-)

diff --git a/build.xml b/build.xml
index ec8d807..cb86759 100644
--- a/build.xml
+++ b/build.xml
@@ -31,10 +31,10 @@
       ant docs-all
 
     To build all and package up the files for distribution
-      ant distribution [ -Djmeter.version=vvvv ]
+      ant distribution -Djmeter.version=vvvv [-Dsvn.revision=nnnnn]
 
   	To create a nightly build (separate bin/src/lib jars):
-      ant nightly [ -Djmeter.version=vvvv ]
+      ant nightly [-Dsvn.revision=nnnnn]
   	
     To create tar and tgz of the web-site documentation (docs and api)
       ant site [ -Djmeter.version=vvvv ]
@@ -403,7 +403,9 @@
   	    This is overridden for formal releases.
   	-->
     <property name="jmeter.version" value="2.3.${DSTAMP}"/>
+    <property name="implementation.version" value="${jmeter.version} r${svn.revision}"/>
    	<echo>jmeter.version = ${jmeter.version}</echo>
+   	<echo>implementation.version = ${implementation.version}</echo>
   </target>
 
   <!-- JMeter Javadoc version (own variable is used so can be overriden independently) -->
@@ -411,8 +413,12 @@
 
 	<!-- Get version from SVN status -->
   <target name="init-svnVersion" depends="svnCheck">
-   	<property name="jmeter.version" value="r${svnCheck.revision}"/>
+  	<fail message="Could not get SVN revision" unless="svn.revision"/>
+   	<property name="jmeter.version" value="r${svn.revision}"/>
+  	<!-- Copy the value to avoid duplication of revision in Manifests -->
+    <property name="implementation.version" value="${jmeter.version}"/>
    	<echo>jmeter.version = ${jmeter.version}</echo>
+   	<echo>implementation.version = ${implementation.version}</echo>
   </target>
 
   
@@ -738,7 +744,7 @@ run JMeter unless all the JMeter jars are added.
     	<manifest>
            <attribute name="Main-Class" value="org.apache.jmeter.NewDriver"/>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -760,7 +766,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -773,7 +779,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -786,7 +792,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -799,7 +805,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -812,7 +818,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -825,7 +831,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -838,7 +844,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -851,7 +857,7 @@ run JMeter unless all the JMeter jars are added.
     	<manifest>
 	   <attribute name="Main-Class" value="org.apache.jmeter.util.BeanShellClient"/>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -864,7 +870,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -877,7 +883,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -890,7 +896,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -903,7 +909,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -916,7 +922,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -929,7 +935,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -944,7 +950,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -956,7 +962,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -977,7 +983,7 @@ run JMeter unless all the JMeter jars are added.
         <metainf dir="." includes="LICENSE,NOTICE"/>
     	<manifest>
            <attribute name="Built-By" value="${user.name}"/>
-           <attribute name="Implementation-Version" value="${jmeter.version}"/>
+           <attribute name="Implementation-Version" value="${implementation.version}"/>
            <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
            <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
     	</manifest>
@@ -1059,17 +1065,22 @@ run JMeter unless all the JMeter jars are added.
 		<include name="${velocity.jar}"/>
   	</patternset>
 
-	<!-- Invoke with -Djmeter.version=m.n -Duser.name=xyz@apache.org
+	<!-- Invoke with -Djmeter.version=m.n -Duser.name=xyz@apache.org [-Dsvn.revision=nnnnn]
 	Creates clean build and all documentation
 	Creates runtime and source distributions and site documentation
 	-->
 	<target name="distribution" 
-		depends="clean,install,docs-printable,test,_distribution"
+		depends="svnCheck,check-versions,clean,install,docs-printable,test,_distribution"
 		description="Build JMeter for end-user distribution"/>
 
+	<target name="check-versions">
+		<fail message="jmeter.version must be defined" unless="jmeter.version"/>
+		<fail message="svn.revision must be defined" unless="svn.revision"/>
+	</target>
+
 	<target
 		name="nightly"
-		depends="package,docs-printable,pack-nightly"
+		depends="init-svnVersion,check-versions,package,docs-printable,pack-nightly"
 		description="Build JMeter for nightly dir (package docs-printable pack-nightly)"/>
 		
 	<!-- Internal target -->
@@ -1628,17 +1639,20 @@ run JMeter unless all the JMeter jars are added.
     </junitreport>
   </target>
 
-    <target name="svnCheck" description="Use SVN to get the current revision">
-   	  <path id="svn.classpath">
-   	  	<pathelement location="${lib.opt}/svnant.jar"/>
-   	  	<pathelement location="${lib.opt}/svnClientAdapter.jar"/>
-   	  	<pathelement location="${lib.opt}/svnjavahl.jar"/>
-   	  </path>
-      <!-- The task def is nested here so that a missing jar only causes an error if the task is used -->
-   	  <taskdef resource="svntask.properties" classpathref="svn.classpath"/>
+	<path id="svnant.classpath">
+ 	  	<pathelement location="${lib.opt}/svnant.jar"/>
+ 	  	<pathelement location="${lib.opt}/svnClientAdapter.jar"/>
+ 	  	<pathelement location="${lib.opt}/svnjavahl.jar"/>
+ 	</path>
+
+	<available resource="svntask.properties" classpathref="svnant.classpath" property="svnAnt.present"/>
+
+    <target name="svnCheck" description="Use SVN to get the current revision" if="svnAnt.present">
+      <!-- The task def is nested here so that a missing jar does not cause an error -->
+   	  <taskdef resource="svntask.properties" classpathref="svnant.classpath"/>
     	<svn>
           <status path="build.xml" 
-    		revisionProperty="svnCheck.revision"/>
+    		revisionProperty="svn.revision"/>
     	</svn>
     </target>
 </project>
\ No newline at end of file


[jmeter] 36/47: SampleEvent requires the ThreadGroup name This is equivalent to the previous code, but clearer.

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 096fe6381d3c4caaff6e10eae06dad4d588e94f0
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 23 17:37:31 2007 +0000

    SampleEvent requires the ThreadGroup name
    This is equivalent to the previous code, but clearer.
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578589 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: bc09f9b0ae8de35e4f7026414a72775aabfb211d
---
 src/core/org/apache/jmeter/threads/JMeterThread.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/core/org/apache/jmeter/threads/JMeterThread.java b/src/core/org/apache/jmeter/threads/JMeterThread.java
index ee517bd..fa55a7a 100644
--- a/src/core/org/apache/jmeter/threads/JMeterThread.java
+++ b/src/core/org/apache/jmeter/threads/JMeterThread.java
@@ -568,7 +568,7 @@ public class JMeterThread implements Runnable, Serializable {
 	}
 
 	private void notifyListeners(List listeners, SampleResult result) {
-		SampleEvent event = new SampleEvent(result, controller.getPropertyAsString(TestElement.NAME));
+		SampleEvent event = new SampleEvent(result, threadGroup.getName());
 		notifier.notifyListeners(event, listeners);
 
 	}


[jmeter] 37/47: The change of key to include the thread name was wrong It worked, but fewer samples could be aggregated.

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 582f2a5a72067e5481a6e060eb4f1704e57ddfe0
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 23 17:44:11 2007 +0000

    The change of key to include the thread name was wrong
    It worked, but fewer samples could be aggregated.
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578591 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 98c07f9b9fdaefb8edd1a126f860ed1aea13fbf6
---
 src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
index 81529fa..66007a9 100644
--- a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
+++ b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
@@ -50,7 +50,7 @@ public class StatisticalSampleResult extends SampleResult implements
 	public StatisticalSampleResult(SampleResult res) {
 		// Copy data that is shared between samples (i.e. the key items):
 		setSampleLabel(res.getSampleLabel());
-		setThreadName(res.getThreadName());
+		// Nothing else can be saved, as the samples may come from any thread
 
 		setSuccessful(true); // Assume result is OK
 		setSampleCount(0); // because we add the sample count in later
@@ -106,9 +106,8 @@ public class StatisticalSampleResult extends SampleResult implements
 	 * @return the key to use for aggregating samples
 	 */
 	public static String getKey(SampleEvent event) {
-		SampleResult result = event.getResult();
 		StringBuffer sb = new StringBuffer(80);
-		sb.append(result.getSampleLabel()).append("-").append(result.getThreadName());
+		sb.append(event.getResult().getSampleLabel()).append("-").append(event.getThreadGroup());
 		return sb.toString();
 	}
 }


[jmeter] 40/47: Fix LF for all .sh files as well

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 47962f9b68a64ab6e3198e70356e83a394ec9f35
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 14:24:12 2007 +0000

    Fix LF for all .sh files as well
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578824 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: f8138bd6bf9f4a0502a65da9693bf16175174bfd
---
 build.xml | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/build.xml b/build.xml
index 9b31396..ec8d807 100644
--- a/build.xml
+++ b/build.xml
@@ -964,7 +964,7 @@ run JMeter unless all the JMeter jars are added.
   </target>
 
   <target name="install" depends="package" description="Install JMeter. (Compiles code and creates jars)">
-    <fixcrlf srcdir="." eol="lf" includes="**/jmeter,**/jmeter-server,**/jmeter-report"/>
+    <fixcrlf srcdir="." eol="lf" includes="bin/*.sh bin/jmeter bin/jmeter-server bin/jmeter-report"/>
   </target>
 
   <target name="all" depends="clean,install" 
@@ -1636,11 +1636,8 @@ run JMeter unless all the JMeter jars are added.
    	  </path>
       <!-- The task def is nested here so that a missing jar only causes an error if the task is used -->
    	  <taskdef resource="svntask.properties" classpathref="svn.classpath"/>
-    	<svn javahl="true">
+    	<svn>
           <status path="build.xml" 
-          	textStatusProperty="testStatus.textStatus"
-    		propStatusProperty="testStatus.propStatus"
-    		lastChangedRevisionProperty="testStatus.lastCommitRevision"
     		revisionProperty="svnCheck.revision"/>
     	</svn>
     </target>


[jmeter] 13/47: Add RC4 tag

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 65cf7f87377eb012fc8e9409efc66685e1f1ae99
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 18:12:54 2007 +0000

    Add RC4 tag
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577409 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 5c9c6c8580762286633e1c929563ec63f78bf89a


[jmeter] 08/47: Fix bug - should not have used "set" Rework to remove need to save CLASSPATH Kill rmiregistry when interrupted

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit e40b1687d010f39103cb975658417cf98d4daba0
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 08:47:59 2007 +0000

    Fix bug - should not have used "set"
    Rework to remove need to save CLASSPATH
    Kill rmiregistry when interrupted
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577197 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: fb10111af3f321eecd507fcf0dbe27a360f8005f
---
 bin/jmeter-server | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/bin/jmeter-server b/bin/jmeter-server
index 8ca9f55..cc58b66 100755
--- a/bin/jmeter-server
+++ b/bin/jmeter-server
@@ -20,11 +20,8 @@
 ##   SERVER_PORT=1234 jmeter-server
 ##
 
-set OLDCLASSPATH=$CLASSPATH
-export OLDCLASSPATH
-set CLASSPATH=`dirname $0`/../lib/ext/ApacheJMeter_core.jar:`dirname $0`/../lib/jorphan.jar:`dirname $0`/../lib/logkit-1.2.jar
-export CLASSPATH
-rmiregistry $SERVER_PORT &
-set CLASSPATH=$OLDCLASSPATH
-export CLASSPATH
-`dirname $0`/jmeter -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
+DIRNAME=${DIRNAME}
+CLASSPATH=${DIRNAME}/../lib/ext/ApacheJMeter_core.jar:${DIRNAME}/../lib/jorphan.jar:${DIRNAME}/../lib/logkit-1.2.jar rmiregistry $SERVER_PORT &
+# stop rmiregistry on interrupt 
+trap "kill $!" 2
+${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
\ No newline at end of file


[jmeter] 01/47: Synchronise generated documents

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit d7768818a119518355f547ed9f400c7f0cd862fa
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 9 20:11:30 2007 +0000

    Synchronise generated documents
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@574066 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 60236f2bcd3f43c0e2e66d5eae49645ff949561c


[jmeter] 12/47: Avoid possible ArrayOutOfBounds Exception

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 03cb3529e595c91ceeb59a5b0056133e673d18ef
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 11:11:06 2007 +0000

    Avoid possible ArrayOutOfBounds Exception
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577244 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 3d6f98aca9723319138350e47885958a69341563
---
 src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java b/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
index aa570b6..f6460c5 100644
--- a/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
+++ b/src/core/org/apache/jmeter/testbeans/gui/GenericTestBeanCustomizer.java
@@ -592,7 +592,7 @@ public class GenericTestBeanCustomizer extends JPanel implements SharedCustomize
 				if (propertyEditor instanceof WrapperEditor){
 					WrapperEditor we = (WrapperEditor) propertyEditor;
 					String tags[]=we.getTags();
-					if (tags != null) {
+					if (tags != null && tags.length > 0) {
 						we.setAsText(tags[0]);
 					} else {
 						we.setValue("");


[jmeter] 46/47: Fix up version info for the tag

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit a5bb3293671ec8b100c67bd68ab81f711f7f023f
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Mon Sep 24 22:40:27 2007 +0000

    Fix up version info for the tag
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/tags/v2_3@579003 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 9ed01775e058447b4dcd4087b51051e457a61257
---
 src/core/org/apache/jmeter/util/JMeterVersion.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/core/org/apache/jmeter/util/JMeterVersion.java b/src/core/org/apache/jmeter/util/JMeterVersion.java
index d7cccf6..d5d4425 100644
--- a/src/core/org/apache/jmeter/util/JMeterVersion.java
+++ b/src/core/org/apache/jmeter/util/JMeterVersion.java
@@ -44,7 +44,7 @@ public class JMeterVersion {
 	 * This ensures that JMeterUtils always gets the correct
 	 * version, even if JMeterUtils is not re-compiled during the build.
 	 */
-	private static final String VERSION = "2.3.20070909";
+	private static final String VERSION = "2.3";
 
 	static final String COPYRIGHT = "Copyright (c) 1998-2007 The Apache Software Foundation";
 


[jmeter] 07/47: Add full bug listing; correct existing listings to include NEEDINFO and Trivial

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit d5a94b58ccaf7ca316c923e787ec4fed451e4256
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Tue Sep 18 22:20:36 2007 +0000

    Add full bug listing; correct existing listings to include NEEDINFO and Trivial
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577085 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 86b69a1cb319a10c68af7ab83d766396eaa4cb22
---
 xdocs/known_bugs.xml | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/xdocs/known_bugs.xml b/xdocs/known_bugs.xml
index 590e538..9b5c069 100644
--- a/xdocs/known_bugs.xml
+++ b/xdocs/known_bugs.xml
@@ -23,11 +23,15 @@
 <section name="Known Bugs"> 
 <ul>
 <li>
-<a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_severity=Blocker&amp;bug_severity=Critical&amp;bug_severity=Major&amp;bug_severity=Normal&amp;bug_severity=Minor&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=JMeter&am [...]
-BugZilla - Open bugs</a></li>
+<a href="http://issues.apache.org/bugzilla/buglist.cgi?query_format=specific&amp;order=relevance+desc&amp;bug_status=__open__&amp;product=JMeter&amp;content=">
+Bugzilla - All open bugs</a>
+</li>
+<li>
+<a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=NEEDINFO&amp;bug_severity=Blocker&amp;bug_severity=Critical&amp;bug_severity=Major&amp;bug_severity=Normal&amp;bug_severity=Minor&amp;bug_severity=Trivial&amp;product=JMeter&amp;cmdtype=doit&amp;order=Bug+Number">
+BugZilla - Open bugs (excluding enhancements)</a></li>
 <li>
-<a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_severity=Enhancement&amp;email1=&amp;emailtype1=substring&amp;emailassigned_to1=1&amp;email2=&amp;emailtype2=substring&amp;emailreporter2=1&amp;bugidtype=include&amp;bug_id=&amp;changedin=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;product=JMeter&amp;short_desc=&amp;short_desc_type=substring&amp;long_desc=&amp;long_desc_type=substring&amp; [...]
-BugZilla - Enhancements</a>
+<a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;bug_status=NEEDINFO&amp;bug_severity=Enhancement&amp;product=JMeter&amp;cmdtype=doit&amp;order=Bug+Number">
+BugZilla - Enhancements only</a>
 </li>
 </ul>
 </section>


[jmeter] 22/47: Look for user.properties and system.properties in JMeter bin directory if not found locally

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 975a7b1daea1c3e1de9f9e4e6e5768c545948614
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Fri Sep 21 13:05:23 2007 +0000

    Look for user.properties and system.properties in JMeter bin directory if not found locally
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578090 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 4cd8acc69e76e53e2a49354ea78ec4e9fb2bcd4b
---
 src/core/org/apache/jmeter/JMeter.java | 8 ++++----
 xdocs/changes.xml                      | 1 +
 xdocs/usermanual/get-started.xml       | 3 ++-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/core/org/apache/jmeter/JMeter.java b/src/core/org/apache/jmeter/JMeter.java
index b44f457..299f752 100644
--- a/src/core/org/apache/jmeter/JMeter.java
+++ b/src/core/org/apache/jmeter/JMeter.java
@@ -485,9 +485,9 @@ public class JMeter implements JMeterPlugin {
 		if (userProp.length() > 0){ //$NON-NLS-1$
 			FileInputStream fis=null;
 			try {
-                File file = new File(userProp);
+                File file = JMeterUtils.findFile(userProp);
                 if (file.canRead()){
-                	log.info("Loading user properties from: "+userProp);
+                	log.info("Loading user properties from: "+file.getCanonicalPath());
 					fis = new FileInputStream(file);
 					Properties tmp = new Properties();
 					tmp.load(fis);
@@ -506,9 +506,9 @@ public class JMeter implements JMeterPlugin {
 		if (sysProp.length() > 0){
 			FileInputStream fis=null;
 			try {
-                File file = new File(sysProp);
+                File file = JMeterUtils.findFile(sysProp);
                 if (file.canRead()){
-                	log.info("Loading system properties from: "+sysProp);
+                	log.info("Loading system properties from: "+file.getCanonicalPath());
 					fis = new FileInputStream(file);
 					System.getProperties().load(fis);
                 }
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index 06c80aa..fc0f661 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -47,6 +47,7 @@
 <li>Add NULL parameter option to JDBC sampler</li>
 <li>Add documentation links for Rhino and BeanShell to functions; clarify variables and properties</li>
 <li>Ensure uncaught exceptions are logged</li>
+<li>Look for user.properties and system.properties in JMeter bin directory if not found locally</li>
 </ul>
 
 <h4>Fixes since 2.3RC3</h4>
diff --git a/xdocs/usermanual/get-started.xml b/xdocs/usermanual/get-started.xml
index 25e771b..abd882e 100644
--- a/xdocs/usermanual/get-started.xml
+++ b/xdocs/usermanual/get-started.xml
@@ -377,7 +377,8 @@ These are shown below.</p>
   <note>
   Note: since 2.2, you can define additional JMeter properties in the file defined by the
   JMeter property <b>user.properties</b> which has the default value <b>user.properties</b>.
-  The file will be automatically loaded if it is found in the current directory.
+  The file will be automatically loaded if it is found in the current directory
+  or if it is found in the JMeter bin directory.
   Similarly, <b>system.properties</b> is used to update system properties.
   </note>
   <properties>


[jmeter] 19/47: Ensure 3rd party licenses are in external.jars fileset jmeter.sh needs to be executable

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 61a22e65a734e10387de00f6e57648da6d113561
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 18:38:56 2007 +0000

    Ensure 3rd party licenses are in external.jars fileset
    jmeter.sh needs to be executable
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577862 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 8d350f27bf38dafd43bf739894574da8b3a7c226
---
 build.xml | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/build.xml b/build.xml
index aeaf2d4..9b31396 100644
--- a/build.xml
+++ b/build.xml
@@ -284,11 +284,10 @@
   <!-- Jars for binary release -->
   <patternset id="external.jars">
     <include name="LICENSE"/>
+    <include name="LICENSE*.txt"/>
     <include name="NOTICE"/>
     <include name="README"/>
     <include name="MANIFEST"/>
-    <include name="${lib.dir}/*.html"/>
-    <include name="${lib.dir}/LICENSE*.*"/>
     <include name="${avalon-framework.jar}"/>
     <include name="${apache-bsf.jar}"/>
     <include name="${jakarta-oro.jar}"/>
@@ -1019,12 +1018,10 @@ run JMeter unless all the JMeter jars are added.
       List of Unix executable files in the binary distribution
       These need special handling to create the correct file mode
   -->
-  <property name="dist.executables" value="${dest.jar.jmeter}/jmeter ${dest.jar.jmeter}/jmeter-server"/>
+  <property name="dist.executables" value="${dest.jar.jmeter}/jmeter ${dest.jar.jmeter}/jmeter.sh ${dest.jar.jmeter}/jmeter-server"/>
 
   <patternset id="dist.sources">
     <include name="LICENSE"/>
-    <include name="LICENSE*.txt"/>
-    <include name="LICENSE*.html"/>
     <include name="NOTICE"/>
     <include name="README"/>
     <include name="MANIFEST"/>


[jmeter] 23/47: Bug 43449 - Statistical Remote mode does not handle Latency

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 7386860b04a9ce6e8ae27334a4843f24c17a4d45
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Fri Sep 21 19:05:09 2007 +0000

    Bug 43449 - Statistical Remote mode does not handle Latency
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578229 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: ef521266418e5fedfb56e6b58f6f2b089bf7a6b1
---
 src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java | 7 +++++++
 xdocs/changes.xml                                                | 1 +
 2 files changed, 8 insertions(+)

diff --git a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
index 1a9403e..a5aff10 100644
--- a/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
+++ b/src/core/org/apache/jmeter/samplers/StatisticalSampleResult.java
@@ -38,7 +38,11 @@ public class StatisticalSampleResult extends SampleResult implements
     }
     
 	public StatisticalSampleResult(SampleResult res) {
+		// Copy data that is shared between samples:
 		setSampleLabel(res.getSampleLabel());
+		setThreadName(res.getThreadName());
+		setSuccessful(true); // Assume result is OK
+		setSampleCount(0); // because we add the sample count in later
 	}
 
 	public void add(SampleResult res) {
@@ -59,6 +63,9 @@ public class StatisticalSampleResult extends SampleResult implements
 		    this.setStartTime(Math.min(getStartTime(), res.getStartTime()));
         }
 		this.setEndTime(Math.max(getEndTime(), res.getEndTime()));
+		
+		setLatency(getLatency()+ res.getLatency());
+
 	}
 
 	public long getTime() {
diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index fc0f661..2500dca 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -39,6 +39,7 @@
 <li>Bug 42948 - Problems with Proxy gui table fields in Java 1.6</li>
 <li>Fixup broken jmeter-server script</li>
 <li>Bug 43364 - option to revert If Controller to pre 2.3RC3 behaviour</li>
+<li>Bug 43449 - Statistical Remote mode does not handle Latency</li>
 </ul>
 
 <h4>Improvements</h4>


[jmeter] 34/47: Synch Javadocs

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit dd2bb199e22f941d4a03fc940ff42c4ea098e6df
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Sun Sep 23 01:20:00 2007 +0000

    Synch Javadocs
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@578534 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 7895cd4114f8a040ad54ce41ea7c1b1479924e3b


[jmeter] 20/47: Correct bug number (41104=>41140) and add details to fixed bugs

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 7651afaf3888bdea99dba9ad28695c61a1ee0d59
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 21:09:55 2007 +0000

    Correct bug number (41104=>41140) and add details to fixed bugs
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577918 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 3a731c0cd8dc447d89529762ebee937906dc5afb
---
 xdocs/changes.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/xdocs/changes.xml b/xdocs/changes.xml
index fb2de75..06c80aa 100644
--- a/xdocs/changes.xml
+++ b/xdocs/changes.xml
@@ -172,7 +172,7 @@ The LDAP Extended Sampler now uses the same panel for both Thread Bind and Singl
 This means that any tests using the Single-bind test will need to be updated to set the username and password.
 </p>
 <p>
-Bug 41104: JMeterThread behaviour was changed so that PostProcessors are run in forward order
+Bug 41140: JMeterThread behaviour was changed so that PostProcessors are run in forward order
 (as they appear in the test plan) rather than reverse order as previously.
 The original behaviour can be restored by setting the following JMeter property:
 <br/>
@@ -333,6 +333,7 @@ It was unused so far, and used the only Sun-specific class in JMeter.
 <li>Bug 41029 - JMeter -t fails to close input JMX file</li>
 <li>Bug 40954 - Statistical mode in distributed testing shows wrong results</li>
 <li>Fix ClassCast Exception when using sampler that returns null, e..g TestAction</li>
+<li>Bug 41140 - Post-processors are run in reverse order</li>
 <li>Bug 41277 - add Latency and Encoding to CSV output</li>
 <li>Bug 41414 - Mac OS X may add extra item to -jar classpath</li>
 <li>Fix NPE when saving thread counts in remote testing</li>


[jmeter] 10/47: Oops - over-zealous replacement...

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit 3909254b8ee4be87f8fd67fddb503258f1d35f51
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Wed Sep 19 09:08:36 2007 +0000

    Oops - over-zealous replacement...
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577212 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 7bd32042113b25e43f396361d2bd5ff03572d7ca
---
 bin/jmeter-server | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/jmeter-server b/bin/jmeter-server
index cc58b66..f0886a2 100755
--- a/bin/jmeter-server
+++ b/bin/jmeter-server
@@ -20,7 +20,7 @@
 ##   SERVER_PORT=1234 jmeter-server
 ##
 
-DIRNAME=${DIRNAME}
+DIRNAME=`dirname $0`
 CLASSPATH=${DIRNAME}/../lib/ext/ApacheJMeter_core.jar:${DIRNAME}/../lib/jorphan.jar:${DIRNAME}/../lib/logkit-1.2.jar rmiregistry $SERVER_PORT &
 # stop rmiregistry on interrupt 
 trap "kill $!" 2


[jmeter] 16/47: Clarify If and While Condition types

Posted by vl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

vladimirsitnikov pushed a commit to annotated tag v2_3
in repository https://gitbox.apache.org/repos/asf/jmeter.git

commit a28afeeb758bb2167666c0d82afc88351671ad9b
Author: Sebastian Bazley <se...@apache.org>
AuthorDate: Thu Sep 20 15:21:25 2007 +0000

    Clarify If and While Condition types
    
    git-svn-id: https://svn.apache.org/repos/asf/jakarta/jmeter/branches/rel-2-2@577792 13f79535-47bb-0310-9956-ffa450edef68
    
    Former-commit-id: 1a969beefd3298e46300ef6014a30d7785264a1b
---
 src/core/org/apache/jmeter/resources/messages.properties | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/core/org/apache/jmeter/resources/messages.properties b/src/core/org/apache/jmeter/resources/messages.properties
index ea62a73..663586e 100644
--- a/src/core/org/apache/jmeter/resources/messages.properties
+++ b/src/core/org/apache/jmeter/resources/messages.properties
@@ -261,7 +261,7 @@ httpmirror_title=HTTP Mirror Server
 id_prefix=ID Prefix
 id_suffix=ID Suffix
 if_controller_evaluate_all=Evaluate for all children?
-if_controller_label=Condition
+if_controller_label=Condition (Javascript)
 if_controller_title=If Controller
 ignore_subcontrollers=Ignore sub-controller blocks
 include_controller=Include Controller
@@ -807,7 +807,7 @@ webservice_sampler_title=WebService(SOAP) Request
 webservice_soap_action=SOAPAction
 webservice_timeout=Timeout:
 webservice_use_proxy=Use HTTP Proxy
-while_controller_label=Condition
+while_controller_label=Condition (function or variable)
 while_controller_title=While Controller
 workbench_title=WorkBench
 wsdl_helper_error=The WSDL was not valid, please double check the url.