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 2016/11/10 22:33:31 UTC
svn commit: r1769218 -
/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
Author: pmouawad
Date: Thu Nov 10 22:33:31 2016
New Revision: 1769218
URL: http://svn.apache.org/viewvc?rev=1769218&view=rev
Log:
Bug 60361 - ModuleController : If a Test plan contains a Module Controller which references an unexistant Controller, JMeter in GUI mode will not stop
Bugzilla Id: 60361
Modified:
jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
Modified: jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java?rev=1769218&r1=1769217&r2=1769218&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/engine/StandardJMeterEngine.java Thu Nov 10 22:33:31 2016
@@ -45,6 +45,7 @@ import org.apache.jorphan.collections.Ha
import org.apache.jorphan.collections.ListedHashTree;
import org.apache.jorphan.collections.SearchByClass;
import org.apache.jorphan.logging.LoggingManager;
+import org.apache.jorphan.util.JMeterStopTestException;
import org.apache.log.Logger;
/**
@@ -454,31 +455,36 @@ public class StandardJMeterEngine implem
private void startThreadGroup(AbstractThreadGroup group, int groupCount, SearchByClass<?> searcher, List<?> testLevelElements, ListenerNotifier notifier)
{
- int numThreads = group.getNumThreads();
- JMeterContextService.addTotalThreads(numThreads);
- boolean onErrorStopTest = group.getOnErrorStopTest();
- boolean onErrorStopTestNow = group.getOnErrorStopTestNow();
- boolean onErrorStopThread = group.getOnErrorStopThread();
- boolean onErrorStartNextLoop = group.getOnErrorStartNextLoop();
- String groupName = group.getName();
- log.info("Starting " + numThreads + " threads for group " + groupName + ".");
-
- if (onErrorStopTest) {
- log.info("Test will stop on error");
- } else if (onErrorStopTestNow) {
- log.info("Test will stop abruptly on error");
- } else if (onErrorStopThread) {
- log.info("Thread will stop on error");
- } else if (onErrorStartNextLoop) {
- log.info("Thread will start next loop on error");
- } else {
- log.info("Thread will continue on error");
+ try {
+ int numThreads = group.getNumThreads();
+ JMeterContextService.addTotalThreads(numThreads);
+ boolean onErrorStopTest = group.getOnErrorStopTest();
+ boolean onErrorStopTestNow = group.getOnErrorStopTestNow();
+ boolean onErrorStopThread = group.getOnErrorStopThread();
+ boolean onErrorStartNextLoop = group.getOnErrorStartNextLoop();
+ String groupName = group.getName();
+ log.info("Starting " + numThreads + " threads for group " + groupName + ".");
+
+ if (onErrorStopTest) {
+ log.info("Test will stop on error");
+ } else if (onErrorStopTestNow) {
+ log.info("Test will stop abruptly on error");
+ } else if (onErrorStopThread) {
+ log.info("Thread will stop on error");
+ } else if (onErrorStartNextLoop) {
+ log.info("Thread will start next loop on error");
+ } else {
+ log.info("Thread will continue on error");
+ }
+ ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group);
+ threadGroupTree.add(group, testLevelElements);
+
+ groups.add(group);
+ group.start(groupCount, notifier, threadGroupTree, this);
+ } catch (JMeterStopTestException ex) {
+ JMeterUtils.reportErrorToUser("Error occurred compiling the tree:\r\n "+ex.getMessage()+", \r\nsee log file for more details");
+ return; // no point continuing
}
- ListedHashTree threadGroupTree = (ListedHashTree) searcher.getSubTree(group);
- threadGroupTree.add(group, testLevelElements);
-
- groups.add(group);
- group.start(groupCount, notifier, threadGroupTree, this);
}
/**