You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by se...@apache.org on 2013/08/30 00:40:23 UTC
svn commit: r1518848 -
/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
Author: sebb
Date: Thu Aug 29 22:40:23 2013
New Revision: 1518848
URL: http://svn.apache.org/r1518848
Log:
Proxy should deliver failed requests to any configured Listeners
Allow deliverSampler to just send results
Bugzilla Id: 55506
Modified:
jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java?rev=1518848&r1=1518847&r2=1518848&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java (original)
+++ jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/proxy/ProxyControl.java Thu Aug 29 22:40:23 2013
@@ -376,31 +376,38 @@ public class ProxyControl extends Generi
/**
* Receives the recorded sampler from the proxy server for placing in the
- * test tree. param serverResponse to be added to allow saving of the
- * server's response while recording. A future consideration.
+ * test tree; this is skipped if the sampler is null (e.g. for recording SSL errors)
+ * Always sends the result to any registered sample listeners.
+ *
+ * @param sampler the sampler, may be null
+ * @param subConfigs the configuration elements to be added (e.g. header namager)
+ * @param result the sample result, not null
+ * TODO param serverResponse to be added to allow saving of the
+ * server's response while recording.
*/
public synchronized void deliverSampler(final HTTPSamplerBase sampler, final TestElement[] subConfigs, final SampleResult result) {
- if (filterContentType(result) && filterUrl(sampler)) {
- JMeterTreeNode myTarget = findTargetControllerNode();
- @SuppressWarnings("unchecked") // OK, because find only returns correct element types
- Collection<ConfigTestElement> defaultConfigurations = (Collection<ConfigTestElement>) findApplicableElements(myTarget, ConfigTestElement.class, false);
- @SuppressWarnings("unchecked") // OK, because find only returns correct element types
- Collection<Arguments> userDefinedVariables = (Collection<Arguments>) findApplicableElements(myTarget, Arguments.class, true);
-
- removeValuesFromSampler(sampler, defaultConfigurations);
- replaceValues(sampler, subConfigs, userDefinedVariables);
- sampler.setAutoRedirects(samplerRedirectAutomatically.get());
- sampler.setFollowRedirects(samplerFollowRedirects.get());
- sampler.setUseKeepAlive(useKeepAlive.get());
- sampler.setImageParser(samplerDownloadImages.get());
-
- placeSampler(sampler, subConfigs, myTarget);
- }
- else {
- if(log.isDebugEnabled()) {
- log.debug("Sample excluded based on url or content-type: " + result.getUrlAsString() + " - " + result.getContentType());
+ if (sampler != null) {
+ if (filterContentType(result) && filterUrl(sampler)) {
+ JMeterTreeNode myTarget = findTargetControllerNode();
+ @SuppressWarnings("unchecked") // OK, because find only returns correct element types
+ Collection<ConfigTestElement> defaultConfigurations = (Collection<ConfigTestElement>) findApplicableElements(myTarget, ConfigTestElement.class, false);
+ @SuppressWarnings("unchecked") // OK, because find only returns correct element types
+ Collection<Arguments> userDefinedVariables = (Collection<Arguments>) findApplicableElements(myTarget, Arguments.class, true);
+
+ removeValuesFromSampler(sampler, defaultConfigurations);
+ replaceValues(sampler, subConfigs, userDefinedVariables);
+ sampler.setAutoRedirects(samplerRedirectAutomatically.get());
+ sampler.setFollowRedirects(samplerFollowRedirects.get());
+ sampler.setUseKeepAlive(useKeepAlive.get());
+ sampler.setImageParser(samplerDownloadImages.get());
+
+ placeSampler(sampler, subConfigs, myTarget);
+ } else {
+ if(log.isDebugEnabled()) {
+ log.debug("Sample excluded based on url or content-type: " + result.getUrlAsString() + " - " + result.getContentType());
+ }
+ result.setSampleLabel("["+result.getSampleLabel()+"]");
}
- result.setSampleLabel("["+result.getSampleLabel()+"]");
}
// SampleEvent is not passed JMeterVariables, because they don't make sense for Proxy Recording
notifySampleListeners(new SampleEvent(result, "WorkBench")); // TODO - is this the correct threadgroup name?