Author: sebb Date: Sun Jul 26 19:17:22 2009 New Revision: 797975 URL: http://svn.apache.org/viewvc?rev=797975&view=rev Log: Bug 47398 - SampleEvents are sent twice over RMI in distributed testing and non gui mode
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.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=797975&r1=797974&r2=797975&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/JMeter.java Sun Jul 26 19:17:22 2009 @@ -736,18 +736,26 @@ // For GUI runs this is done in Start.java convertSubTree(tree); - if (logFile != null) { - ResultCollector logger = new ResultCollector(); - logger.setFilename(logFile); - tree.add(tree.getArray()[0], logger); - } + Summariser summer = null; String summariserName = JMeterUtils.getPropDefault("summariser.name", "");//$NON-NLS-1$ if (summariserName.length() > 0) { log.info("Creating summariser <" + summariserName + ">"); println("Creating summariser <" + summariserName + ">"); - Summariser summer = new Summariser(summariserName); - tree.add(tree.getArray()[0], summer); + summer = new Summariser(summariserName); + } + + if (logFile != null) { + ResultCollector logger = new ResultCollector(summer); + logger.setFilename(logFile); + tree.add(tree.getArray()[0], logger); + } + else { + // only add Summariser if it can not be shared with the ResultCollector + if (summer != null) { + tree.add(tree.getArray()[0], summer); + } } + List engines = new LinkedList(); tree.add(tree.getArray()[0], new ListenToTest(parent, (remoteStart && remoteStop) ? engines : null)); println("Created the tree successfully using "+testFile); Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java?rev=797975&r1=797974&r2=797975&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/reporters/ResultCollector.java Sun Jul 26 19:17:22 2009 @@ -133,14 +133,22 @@ private volatile boolean inTest = false; private volatile boolean isStats = false; + + /** the summarizer to which this result collector will forward the samples */ + private Summariser summariser; /** * No-arg constructor. */ public ResultCollector() { + this(null); + } + + public ResultCollector(Summariser summer) { setErrorLogging(false); setSuccessOnlyLogging(false); setProperty(new ObjectProperty(SAVE_CONFIG, new SampleSaveConfiguration())); + summariser = summer; } // Ensure that the sample save config is not shared between copied nodes @@ -148,6 +156,8 @@ public Object clone(){ ResultCollector clone = (ResultCollector) super.clone(); clone.setSaveConfig((SampleSaveConfiguration)clone.getSaveConfig().clone()); + // Unfortunately AbstractTestElement does not call super.clone() + clone.summariser = this.summariser; return clone; } @@ -235,6 +245,10 @@ inTest = false; } } + + if(summariser != null) { + summariser.testEnded(host); + } } public synchronized void testStarted(String host) { @@ -250,6 +264,10 @@ } } inTest = true; + + if(summariser != null) { + summariser.testStarted(host); + } } public void testEnded() { @@ -484,6 +502,10 @@ } } } + + if(summariser != null) { + summariser.sampleOccurred(event); + } } protected final void sendToVisualizer(SampleResult r) { @@ -577,5 +599,4 @@ // can find the Clearable nodes - the userObject has to implement the interface. public void clearData() { } - } \ No newline at end of file Modified: jakarta/jmeter/trunk/xdocs/changes.xml URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/xdocs/changes.xml?rev=797975&r1=797974&r2=797975&view=diff ============================================================================== --- jakarta/jmeter/trunk/xdocs/changes.xml (original) +++ jakarta/jmeter/trunk/xdocs/changes.xml Sun Jul 26 19:17:22 2009 @@ -116,6 +116,7 @@ <h3>Listeners</h3> <ul> +<li>Bug 47398 - SampleEvents are sent twice over RMI in distributed testing and non gui mode</li> </ul> <h3>Assertions, Config, Pre- & Post-Processors</h3> --------------------------------------------------------------------- To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org