Author: sebb
Date: Wed Sep 19 19:31:30 2007
New Revision: 577514
URL: http://svn.apache.org/viewvc?rev=577514&view=rev
Log:
Bug 43430 - Count of active threads is incorrect for remote samples
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
jakarta/jmeter/trunk/xdocs/changes.xml
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java?rev=577514&r1=577513&r2=577514&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/samplers/SampleResult.java
Wed Sep 19 19:31:30 2007
@@ -151,6 +151,10 @@
private int sampleCount = 1;
private int bytes = 0;
+
+ private volatile int groupThreads = 0; // Active threads in this thread
group
+
+ private volatile int allThreads = 0; // Active threads in all thread
groups
// TODO do contentType and/or dataEncoding belong in HTTPSampleResult
instead?
@@ -196,6 +200,9 @@
setDataEncoding(res.getDataEncoding());
setURL(res.getURL());
+ setGroupThreads(res.getGroupThreads());
+ setAllThreads(res.getAllThreads());
+
addSubResult(res); // this will add res.getTime() to getTime().
}
@@ -820,7 +827,7 @@
/**
* return the sample count. by default, the value is 1.
*
- * @return
+ * @return the sample count
*/
public int getSampleCount() {
return sampleCount;
@@ -840,7 +847,7 @@
/**
* return the bytes returned by the response.
*
- * @return
+ * @return byte count
*/
public int getBytes() {
return bytes == 0 ? responseData.length : bytes;
@@ -922,4 +929,20 @@
public void setResultFileName(String resultFileName) {
this.resultFileName = resultFileName;
}
+
+ public int getGroupThreads() {
+ return groupThreads;
+ }
+
+ public void setGroupThreads(int n) {
+ this.groupThreads = n;
+ }
+
+ public int getAllThreads() {
+ return allThreads;
+ }
+
+ public void setAllThreads(int n) {
+ this.allThreads = n;
+ }
}
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java?rev=577514&r1=577513&r2=577514&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/OldSaveService.java
Wed Sep 19 19:31:30 2007
@@ -49,7 +49,6 @@
import org.apache.jmeter.testelement.property.MapProperty;
import org.apache.jmeter.testelement.property.StringProperty;
import org.apache.jmeter.testelement.property.TestElementProperty;
-import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.util.NameUpdater;
import org.apache.jorphan.collections.HashTree;
import org.apache.jorphan.collections.ListedHashTree;
@@ -233,8 +232,13 @@
}
if (saveConfig.saveThreadCounts()) {
- i+=2;// two counts
- // Not saved, as not part of a result
+ field = CSV_THREAD_COUNT1;
+ text = parts[i++];
+ result.setGroupThreads(Integer.parseInt(text));
+
+ field = CSV_THREAD_COUNT2;
+ text = parts[i++];
+ result.setAllThreads(Integer.parseInt(text));
}
if (saveConfig.saveUrl()) {
@@ -547,15 +551,9 @@
}
if (saveConfig.saveThreadCounts()) {
- org.apache.jmeter.threads.ThreadGroup
- threadGroup=JMeterContextService.getContext().getThreadGroup();
- int numThreads =0;
- if (threadGroup != null) { // can be null for remote testing
- numThreads = threadGroup.getNumberOfThreads();
- }
- text.append(numThreads);
+ text.append(sample.getGroupThreads());
text.append(delimiter);
- text.append(JMeterContextService.getNumberOfThreads());
+ text.append(sample.getAllThreads());
text.append(delimiter);
}
if (saveConfig.saveUrl()) {
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java?rev=577514&r1=577513&r2=577514&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
(original)
+++
jakarta/jmeter/trunk/src/core/org/apache/jmeter/save/converters/SampleResultConverter.java
Wed Sep 19 19:31:30 2007
@@ -28,7 +28,6 @@
import org.apache.jmeter.assertions.AssertionResult;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.SampleSaveConfiguration;
-import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jorphan.util.Converter;
import com.thoughtworks.xstream.mapper.Mapper;
import com.thoughtworks.xstream.converters.MarshallingContext;
@@ -248,17 +247,9 @@
writer.addAttribute(ATT_DATA_ENCODING,
ConversionHelp.encode(res.getDataEncoding()));
if (save.saveBytes())
writer.addAttribute(ATT_BYTES,
String.valueOf(res.getBytes()));
- if (save.saveThreadCounts()){// These cannot be restored
- org.apache.jmeter.threads.ThreadGroup
- threadGroup=JMeterContextService.getContext().getThreadGroup();
- int numThreads =0;
- if (threadGroup != null) { // can be null for remote testing
- numThreads = threadGroup.getNumberOfThreads();
- }
- writer.addAttribute(ATT_GRP_THRDS,
- String.valueOf(numThreads));
- writer.addAttribute(ATT_ALL_THRDS,
- String.valueOf(JMeterContextService.getNumberOfThreads()));
+ if (save.saveThreadCounts()){
+ writer.addAttribute(ATT_GRP_THRDS,
String.valueOf(res.getGroupThreads()));
+ writer.addAttribute(ATT_ALL_THRDS,
String.valueOf(res.getAllThreads()));
}
}
@@ -357,7 +348,8 @@
Converter.getLong(reader.getAttribute(ATT_TIME)));
res.setLatency(Converter.getLong(reader.getAttribute(ATT_LATENCY)));
res.setBytes(Converter.getInt(reader.getAttribute(ATT_BYTES)));
- // ATT_GRP_THRDS and ATT_ALL_THRDS are write only
+
res.setGroupThreads(Converter.getInt(reader.getAttribute(ATT_GRP_THRDS)));
+
res.setAllThreads(Converter.getInt(reader.getAttribute(ATT_ALL_THRDS)));
}
protected void readFile(String resultFileName, SampleResult res) {
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java?rev=577514&r1=577513&r2=577514&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/JMeterThread.java
Wed Sep 19 19:31:30 2007
@@ -300,6 +300,8 @@
// If we got any results, then perform processing
on the result
if (result != null) {
+
result.setGroupThreads(threadGroup.getNumberOfThreads());
+
result.setAllThreads(JMeterContextService.getNumberOfThreads());
result.setThreadName(threadName);
threadContext.setPreviousResult(result);
runPostProcessors(pack.getPostProcessors());
Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=577514&r1=577513&r2=577514&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Wed Sep 19 19:31:30 2007
@@ -32,6 +32,7 @@
<h4>Bug fixes</h4>
<ul>
<li>SaveService no longer needs to instantiate classes</li>
+<li>Bug 43430 - Count of active threads is incorrect for remote samples</li>
</ul>
<h4>Improvements</h4>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]