You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2013/08/07 12:17:41 UTC
svn commit: r1511236 - in /jmeter/trunk: bin/testfiles/Bug55375.csv
bin/testfiles/Bug55375.jmx bin/testfiles/Bug55375.xml build.xml
src/components/org/apache/jmeter/control/ModuleController.java
xdocs/changes.xml
Author: sebb
Date: Wed Aug 7 10:17:40 2013
New Revision: 1511236
URL: http://svn.apache.org/r1511236
Log:
StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node
Bugzilla Id: 55375
Added:
jmeter/trunk/bin/testfiles/Bug55375.csv (with props)
jmeter/trunk/bin/testfiles/Bug55375.jmx (with props)
jmeter/trunk/bin/testfiles/Bug55375.xml (with props)
Modified:
jmeter/trunk/build.xml
jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java
jmeter/trunk/xdocs/changes.xml
Added: jmeter/trunk/bin/testfiles/Bug55375.csv
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/Bug55375.csv?rev=1511236&view=auto
==============================================================================
--- jmeter/trunk/bin/testfiles/Bug55375.csv (added)
+++ jmeter/trunk/bin/testfiles/Bug55375.csv Wed Aug 7 10:17:40 2013
@@ -0,0 +1,2 @@
+label,responseCode,responseMessage,threadName,dataType,success,bytes,SampleCount,ErrorCount
+reload,,,threadgroup 1-1,,true,0,1,0
Propchange: jmeter/trunk/bin/testfiles/Bug55375.csv
------------------------------------------------------------------------------
svn:eol-style = native
Added: jmeter/trunk/bin/testfiles/Bug55375.jmx
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/Bug55375.jmx?rev=1511236&view=auto
==============================================================================
--- jmeter/trunk/bin/testfiles/Bug55375.jmx (added)
+++ jmeter/trunk/bin/testfiles/Bug55375.jmx Wed Aug 7 10:17:40 2013
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jmeterTestPlan version="1.2" properties="2.5" jmeter="2.10-SNAPSHOT.20130807">
+ <hashTree>
+ <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Bug55375" enabled="true">
+ <stringProp name="TestPlan.comments"></stringProp>
+ <boolProp name="TestPlan.functional_mode">false</boolProp>
+ <boolProp name="TestPlan.serialize_threadgroups">true</boolProp>
+ <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+ <collectionProp name="Arguments.arguments"/>
+ </elementProp>
+ <stringProp name="TestPlan.user_define_classpath"></stringProp>
+ </TestPlan>
+ <hashTree>
+ <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="threadgroup" enabled="true">
+ <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
+ <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
+ <boolProp name="LoopController.continue_forever">false</boolProp>
+ <stringProp name="LoopController.loops">1</stringProp>
+ </elementProp>
+ <stringProp name="ThreadGroup.num_threads">1</stringProp>
+ <stringProp name="ThreadGroup.ramp_time">0</stringProp>
+ <longProp name="ThreadGroup.start_time">1344428409000</longProp>
+ <longProp name="ThreadGroup.end_time">1344428409000</longProp>
+ <boolProp name="ThreadGroup.scheduler">false</boolProp>
+ <stringProp name="ThreadGroup.duration"></stringProp>
+ <stringProp name="ThreadGroup.delay"></stringProp>
+ </ThreadGroup>
+ <hashTree>
+ <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="reload" enabled="false"/>
+ <hashTree>
+ <JavaSampler guiclass="JavaTestSamplerGui" testclass="JavaSampler" testname="reload" 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">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>
+ <ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="reload" enabled="true">
+ <collectionProp name="ModuleController.node_path">
+ <stringProp name="-1227702913">WorkBench</stringProp>
+ <stringProp name="-1475507747">Bug55375</stringProp>
+ <stringProp name="1938366133">threadgroup</stringProp>
+ <stringProp name="-934641255">reload</stringProp>
+ </collectionProp>
+ </ModuleController>
+ <hashTree/>
+ </hashTree>
+ <ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Simple Data Writer" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>false</time>
+ <latency>false</latency>
+ <timestamp>false</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>false</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sampleCount>true</sampleCount>
+ </value>
+ </objProp>
+ <stringProp name="filename">Bug55375.csv</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ <ResultCollector guiclass="SimpleDataWriter" testclass="ResultCollector" testname="Simple Data Writer" enabled="true">
+ <boolProp name="ResultCollector.error_logging">false</boolProp>
+ <objProp>
+ <name>saveConfig</name>
+ <value class="SampleSaveConfiguration">
+ <time>false</time>
+ <latency>false</latency>
+ <timestamp>false</timestamp>
+ <success>true</success>
+ <label>true</label>
+ <code>true</code>
+ <message>true</message>
+ <threadName>true</threadName>
+ <dataType>true</dataType>
+ <encoding>false</encoding>
+ <assertions>true</assertions>
+ <subresults>true</subresults>
+ <responseData>false</responseData>
+ <samplerData>false</samplerData>
+ <xml>true</xml>
+ <fieldNames>true</fieldNames>
+ <responseHeaders>false</responseHeaders>
+ <requestHeaders>false</requestHeaders>
+ <responseDataOnError>false</responseDataOnError>
+ <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
+ <assertionsResultsToSave>0</assertionsResultsToSave>
+ <bytes>true</bytes>
+ <sampleCount>true</sampleCount>
+ </value>
+ </objProp>
+ <stringProp name="filename">Bug55375.xml</stringProp>
+ </ResultCollector>
+ <hashTree/>
+ </hashTree>
+ </hashTree>
+</jmeterTestPlan>
Propchange: jmeter/trunk/bin/testfiles/Bug55375.jmx
------------------------------------------------------------------------------
svn:eol-style = LF
Added: jmeter/trunk/bin/testfiles/Bug55375.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/bin/testfiles/Bug55375.xml?rev=1511236&view=auto
==============================================================================
--- jmeter/trunk/bin/testfiles/Bug55375.xml (added)
+++ jmeter/trunk/bin/testfiles/Bug55375.xml Wed Aug 7 10:17:40 2013
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testResults version="1.2">
+<sample s="true" lb="reload" rc="" rm="" tn="threadgroup 1-1" dt="" by="0" sc="1" ec="0"/>
+
+</testResults>
Propchange: jmeter/trunk/bin/testfiles/Bug55375.xml
------------------------------------------------------------------------------
svn:eol-style = LF
Modified: jmeter/trunk/build.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/build.xml?rev=1511236&r1=1511235&r2=1511236&view=diff
==============================================================================
--- jmeter/trunk/build.xml (original)
+++ jmeter/trunk/build.xml Wed Aug 7 10:17:40 2013
@@ -2593,6 +2593,11 @@ run JMeter unless all the JMeter jars ar
<param name="batchtest.value" value="REFERENCE,JSESSIONID"/>
</antcall>
+ <antcall target="batchtest">
+ <!-- StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node -->
+ <param name="batchtest.name" value="Bug55375"/>
+ </antcall>
+
<antcall target="batchtestserver">
<!-- ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not server -->
<!-- This is the actual test -->
Modified: jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java?rev=1511236&r1=1511235&r2=1511236&view=diff
==============================================================================
--- jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java (original)
+++ jmeter/trunk/src/components/org/apache/jmeter/control/ModuleController.java Wed Aug 7 10:17:40 2013
@@ -145,11 +145,14 @@ public class ModuleController extends Ge
if (node != null && nodePath.size() > level) {
for (int i = 0; i < node.getChildCount(); i++) {
JMeterTreeNode cur = (JMeterTreeNode) node.getChildAt(i);
- if (cur.getName().equals(nodePath.get(level).toString())) {
- if (nodePath.size() == (level + 1)) {
- selectedNode = cur;
+ // Bug55375 - don't allow selectedNode to be a ModuleController as can cause recursion
+ if (!(cur.getTestElement() instanceof ModuleController)) {
+ if (cur.getName().equals(nodePath.get(level).toString())) {
+ if (nodePath.size() == (level + 1)) {
+ selectedNode = cur;
+ }
+ traverse(cur, nodePath, level + 1);
}
- traverse(cur, nodePath, level + 1);
}
}
}
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1511236&r1=1511235&r2=1511236&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Wed Aug 7 10:17:40 2013
@@ -241,6 +241,7 @@ Previously the default was 1, which coul
<li><bugzilla>54950</bugzilla> - ModuleController : Changes to referenced Module are not taken into account if changes occur after first run and referenced node is disabled</li>
<li><bugzilla>55201</bugzilla> - ForEach controller excludes start index and includes end index (clarified documentation)</li>
<li><bugzilla>55334</bugzilla> - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save</li>
+<li><bugzilla>55375</bugzilla> - StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node</li>
</ul>
<h3>Listeners</h3>