You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by pm...@apache.org on 2013/08/02 14:02:03 UTC
svn commit: r1509647 - in /jmeter/trunk:
src/core/org/apache/jmeter/JMeter.java xdocs/changes.xml
Author: pmouawad
Date: Fri Aug 2 12:02:03 2013
New Revision: 1509647
URL: http://svn.apache.org/r1509647
Log:
Bug 55334 - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save
Bugzilla Id: 55334
Modified:
jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
jmeter/trunk/xdocs/changes.xml
Modified: jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=1509647&r1=1509646&r2=1509647&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Fri Aug 2 12:02:03 2013
@@ -842,16 +842,7 @@ public class JMeter implements JMeterPlu
TestElement item = (TestElement) o;
if (item.isEnabled()) {
if (item instanceof ReplaceableController) {
- ReplaceableController rc;
-
- // TODO this bit of code needs to be tidied up
- // Unfortunately ModuleController is in components, not core
- if (item.getClass().getName().equals("org.apache.jmeter.control.ModuleController")){ // Bug 47165
- rc = (ReplaceableController) item;
- } else {
- // HACK: force the controller to load its tree
- rc = (ReplaceableController) item.clone();
- }
+ ReplaceableController rc = ensureReplaceableControllerIsLoaded(item);
HashTree subTree = tree.getTree(item);
if (subTree != null) {
@@ -861,9 +852,7 @@ public class JMeter implements JMeterPlu
tree.replace(item, rc);
tree.set(rc, replacementTree);
}
- } else { // null subTree
- convertSubTree(tree.getTree(item));
- }
+ }
} else { // not Replaceable Controller
convertSubTree(tree.getTree(item));
}
@@ -876,10 +865,11 @@ public class JMeter implements JMeterPlu
// Replacement only needs to occur when starting the engine
// @see StandardJMeterEngine.run()
if (item.getUserObject() instanceof ReplaceableController) {
- ReplaceableController rc =
- (ReplaceableController) item.getTestElement();
- HashTree subTree = tree.getTree(item);
+ TestElement controllerAsItem = item.getTestElement();
+ ReplaceableController rc = ensureReplaceableControllerIsLoaded(controllerAsItem);
+ HashTree subTree = tree.getTree(item);
+
if (subTree != null) {
HashTree replacementTree = rc.getReplacementSubTree();
if (replacementTree != null) {
@@ -900,6 +890,25 @@ public class JMeter implements JMeterPlu
}
}
+ /**
+ * Ensures the {@link ReplaceableController} is loaded
+ * @param item {@link TestElement}
+ * @return {@link ReplaceableController} loaded
+ */
+ private static ReplaceableController ensureReplaceableControllerIsLoaded(
+ TestElement item) {
+ ReplaceableController rc;
+ // TODO this bit of code needs to be tidied up
+ // Unfortunately ModuleController is in components, not core
+ if (item.getClass().getName().equals("org.apache.jmeter.control.ModuleController")){ // Bug 47165
+ rc = (ReplaceableController) item;
+ } else {
+ // HACK: force the controller to load its tree
+ rc = (ReplaceableController) item.clone();
+ }
+ return rc;
+ }
+
private JMeterEngine doRemoteInit(String hostName, HashTree testTree) {
JMeterEngine engine = null;
try {
Modified: jmeter/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jmeter/trunk/xdocs/changes.xml?rev=1509647&r1=1509646&r2=1509647&view=diff
==============================================================================
--- jmeter/trunk/xdocs/changes.xml (original)
+++ jmeter/trunk/xdocs/changes.xml Fri Aug 2 12:02:03 2013
@@ -238,6 +238,7 @@ Previously the default was 1, which coul
<li><bugzilla>54985</bugzilla> - Make Transaction Controller set Response Code of Generated Parent Sampler to response code of first failing child in case of failure of one of its children</li>
<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>
</ul>
<h3>Listeners</h3>