Author: sebb
Date: Fri Oct 14 13:15:50 2011
New Revision: 1183345

URL: http://svn.apache.org/viewvc?rev=1183345&view=rev
Log:
Bug 52029 - Command-line shutdown only gets sent to last engine that was 
started 

Modified:
    jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
    jakarta/jmeter/trunk/xdocs/changes.xml

Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java?rev=1183345&r1=1183344&r2=1183345&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Fri Oct 14 
13:15:50 2011
@@ -768,13 +768,13 @@ public class JMeter implements JMeterPlu
             List<JMeterEngine> engines = new LinkedList<JMeterEngine>();
             tree.add(tree.getArray()[0], new ListenToTest(parent, (remoteStart 
&& remoteStop) ? engines : null));
             println("Created the tree successfully using "+testFile);
-            JMeterEngine engine = null;
             if (!remoteStart) {
-                engine = new StandardJMeterEngine();
+                JMeterEngine engine = new StandardJMeterEngine();
                 engine.configure(tree);
                 long now=System.currentTimeMillis();
                 println("Starting the test @ "+new Date(now)+" ("+now+")");
                 engine.runTest();
+                engines.add(engine);
             } else {
                 java.util.StringTokenizer st = new 
java.util.StringTokenizer(remote_hosts_string, ",");//$NON-NLS-1$
                 while (st.hasMoreElements()) {
@@ -796,15 +796,13 @@ public class JMeter implements JMeterPlu
                 log.info("Starting remote engines");
                 long now=System.currentTimeMillis();
                 println("Starting the test @ "+new Date(now)+" ("+now+")");
-                Iterator<JMeterEngine> iter = engines.iterator();
-                while (iter.hasNext()) {
-                    engine = iter.next();
+                for (JMeterEngine engine : engines) {
                     engine.runTest();
                 }
                 println("Remote engines have been started");
                 log.info("Remote engines have been started");
             }
-            startUdpDdaemon(engine);
+            startUdpDdaemon(engines);
         } catch (Exception e) {
             System.out.println("Error in NonGUIDriver " + e.toString());
             log.error("Error in NonGUIDriver", e);
@@ -1045,7 +1043,7 @@ public class JMeter implements JMeterPlu
         log.info(prop+separator+System.getProperty(prop));//$NON-NLS-1$
     }
 
-    private static void startUdpDdaemon(final JMeterEngine engine) {
+    private static void startUdpDdaemon(final List<JMeterEngine> engines) {
         int port = JMeterUtils.getPropDefault("jmeterengine.nongui.port", 
UDP_PORT_DEFAULT); // $NON-NLS-1$
         int maxPort = 
JMeterUtils.getPropDefault("jmeterengine.nongui.maxport", 4455); // $NON-NLS-1$
         if (port > 1000){
@@ -1054,7 +1052,7 @@ public class JMeter implements JMeterPlu
                 Thread waiter = new Thread("UDP Listener"){
                     @Override
                     public void run() {
-                        waitForSignals(engine, socket);
+                        waitForSignals(engines, socket);
                     }
                 };
                 waiter.setDaemon(true);
@@ -1065,7 +1063,7 @@ public class JMeter implements JMeterPlu
         }
     }
 
-    private static void waitForSignals(final JMeterEngine engine, 
DatagramSocket socket) {
+    private static void waitForSignals(final List<JMeterEngine> engines, 
DatagramSocket socket) {
         byte[] buf = new byte[80];
         System.out.println("Waiting for possible shutdown message on port 
"+socket.getLocalPort());
         DatagramPacket request = new DatagramPacket(buf, buf.length);
@@ -1079,9 +1077,13 @@ public class JMeter implements JMeterPlu
                     System.out.println("Command: "+command+" received from 
"+address);
                     log.info("Command: "+command+" received from "+address);
                     if (command.equals("StopTestNow")){
-                        engine.stopTest(true);
+                        for(JMeterEngine engine : engines) {
+                            engine.stopTest(true);
+                        }
                     } else if (command.equals("Shutdown")) {
-                        engine.stopTest(false);
+                        for(JMeterEngine engine : engines) {
+                            engine.stopTest(false);
+                        }
                     } else {
                         System.out.println("Command: "+command+" not 
recognised ");
                     }

Modified: jakarta/jmeter/trunk/xdocs/changes.xml
URL: 
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=1183345&r1=1183344&r2=1183345&view=diff
==============================================================================
--- jakarta/jmeter/trunk/xdocs/changes.xml (original)
+++ jakarta/jmeter/trunk/xdocs/changes.xml Fri Oct 14 13:15:50 2011
@@ -124,6 +124,7 @@ Mirror server now uses default port 8081
 <li>Bug 51988 - CSV Data Set Configuration does not resolve default delimiter 
for header parsing when variables field is empty</li>
 <li>Bug 52003 - View Results Tree "Scroll automatically" does not scroll 
properly in case nodes are expanded</li>
 <li>Bug 27112 - User Parameters should use scrollbars</li>
+<li>Bug 52029 - Command-line shutdown only gets sent to last engine that was 
started</li>
 </ul>
 
 <!-- =================== Improvements =================== -->



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to