Author: sebb
Date: Thu Nov 6 18:40:33 2008
New Revision: 712044
URL: http://svn.apache.org/viewvc?rev=712044&view=rev
Log:
ThreadGroup does not receive samples
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/ThreadGroup.java
Modified:
jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/ThreadGroup.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/ThreadGroup.java?rev=712044&r1=712043&r2=712044&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/ThreadGroup.java
(original)
+++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/threads/ThreadGroup.java
Thu Nov 6 18:40:33 2008
@@ -19,34 +19,24 @@
package org.apache.jmeter.threads;
import java.io.Serializable;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
import org.apache.jmeter.control.Controller;
import org.apache.jmeter.control.LoopController;
import org.apache.jmeter.engine.event.LoopIterationListener;
-import org.apache.jmeter.samplers.RemoteSampleListener;
-import org.apache.jmeter.samplers.SampleEvent;
-import org.apache.jmeter.samplers.SampleListener;
import org.apache.jmeter.samplers.Sampler;
import org.apache.jmeter.testelement.AbstractTestElement;
import org.apache.jmeter.testelement.TestElement;
+import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.IntegerProperty;
import org.apache.jmeter.testelement.property.JMeterProperty;
import org.apache.jmeter.testelement.property.LongProperty;
-import org.apache.jmeter.testelement.property.BooleanProperty;
import org.apache.jmeter.testelement.property.TestElementProperty;
-import org.apache.jorphan.logging.LoggingManager;
-import org.apache.log.Logger;
/**
* ThreadGroup
*
*/
-public class ThreadGroup extends AbstractTestElement implements
SampleListener, Serializable, Controller {
- private final static Logger log = LoggingManager.getLoggerForClass();
+public class ThreadGroup extends AbstractTestElement implements Serializable,
Controller {
private static final long serialVersionUID = 233L;
@@ -75,16 +65,6 @@
public final static String ON_SAMPLE_ERROR_STOPTEST = "stoptest";
- private final static int DEFAULT_NUM_THREADS = 1;
-
- private final static int DEFAULT_RAMP_UP = 0;
-
- private SampleQueue queue = null;
-
- private LinkedList listeners = new LinkedList();
-
- private LinkedList remoteListeners = new LinkedList();
-
private int numberOfThreads = 0; // Number of threads currently running
// in this group
@@ -269,24 +249,6 @@
}
/**
- * Get the default number of threads.
- *
- * @return the default number of threads.
- */
- public int getDefaultNumThreads() {
- return DEFAULT_NUM_THREADS;
- }
-
- /**
- * Get the default ramp-up value.
- *
- * @return the default ramp-up value (in seconds).
- */
- public int getDefaultRampUp() {
- return DEFAULT_RAMP_UP;
- }
-
- /**
* Add a test element.
*
* @param child
@@ -296,110 +258,6 @@
getSamplerController().addTestElement(child);
}
- // TODO - does the ThreadGroup ever get any samples? Does it need to
implement SampleListener?
-
- /**
- * A sample has occurred.
- *
- * @param e
- * the sample event.
- */
- public void sampleOccurred(SampleEvent e) {
- if (queue == null) {
- queue = new SampleQueue();
- Thread thread = new Thread(queue);
- // thread.setPriority(Thread.MAX_PRIORITY);
- thread.start();
- }
- queue.sampleOccurred(e);
- }
-
- /**
- * A sample has started.
- *
- * @param e
- * the sample event.
- */
- public void sampleStarted(SampleEvent e) {
- }
-
- /**
- * A sample has stopped.
- *
- * @param e
- * the sample event
- */
- public void sampleStopped(SampleEvent e) {
- }
-
- /**
- * Separate thread to deliver all SampleEvents. This ensures that sample
- * listeners will get sample events one at a time and can thus ignore
thread
- * issues.
- */
- private class SampleQueue implements Runnable {
- List occurredQ = Collections.synchronizedList(new LinkedList());
-
- /**
- * No-arg constructor.
- */
- public SampleQueue() {
- }
-
- /**
- * A sample occurred.
- *
- * @param e
- * the sample event.
- */
- public synchronized void sampleOccurred(SampleEvent e) {
- occurredQ.add(e);
- this.notifyAll();
- }
-
- /**
- * Run the thread.
- *
- * @see java.lang.Runnable#run()
- */
- public void run() {
- SampleEvent event = null;
- while (true) {
- try {
- event = (SampleEvent) occurredQ.remove(0);
- } catch (Exception ex) {
- log.warn("Problem removing an item from the queue", ex);
- // Drop thru to wait
- }
- try {
- if (event != null) {
- Iterator iter = listeners.iterator();
- while (iter.hasNext()) {
- ((SampleListener)
iter.next()).sampleOccurred(event);
- }
- iter = remoteListeners.iterator();
- while (iter.hasNext()) {
- try {
- ((RemoteSampleListener)
iter.next()).sampleOccurred(event);
- } catch (Exception ex) {
- log.error("Could not invoke sampleOccured on
remote listener", ex);
- }
- }
- } else {
- try {
- this.wait();
- } catch (Exception ex) {
- log.warn("Error occured during wait", ex);
- }
- }
- } catch (Throwable ex) {
- log.error("", ex);
- }
-
- }
- }
- }
-
/*
* (non-Javadoc)
*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]