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 2012/08/28 21:54:09 UTC
svn commit: r1378286 -
/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
Author: pmouawad
Date: Tue Aug 28 19:54:09 2012
New Revision: 1378286
URL: http://svn.apache.org/viewvc?rev=1378286&view=rev
Log:
Bug 53782 - Enhance JavaSampler handling of JavaSamplerClient cleanup to use less memory
Changes following sebb remarks on dev mailing list:
http://mail-archives.apache.org/mod_mbox/jmeter-dev/201208.mbox/%3CCAH9fUpZfe2Jg589tEbUfNrFygSo1mUbvv-tCZ5QEWs5fBZOsXw%40mail.gmail.com%3E
Bugzilla Id: 53782
Modified:
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java?rev=1378286&r1=1378285&r2=1378286&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/sampler/JavaSampler.java Tue Aug 28 19:54:09 2012
@@ -25,7 +25,6 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.config.ConfigTestElement;
import org.apache.jmeter.samplers.AbstractSampler;
@@ -82,7 +81,7 @@ public class JavaSampler extends Abstrac
* be registered for cleanup.
* This is done to avoid using reflection on each registration
*/
- private Map<String, Boolean> isToBeRegisteredCache = new ConcurrentHashMap<String, Boolean>();
+ private static Map<String, Boolean> isToBeRegisteredCache = new ConcurrentHashMap<String, Boolean>();
/**
* Set used to register all JavaSamplerClient and JavaSamplerContext.
@@ -148,39 +147,26 @@ public class JavaSampler extends Abstrac
* @param entry
* the Entry for this sample
* @return test SampleResult
- * @throws NoSuchMethodException
- * @throws SecurityException
*/
public SampleResult sample(Entry entry) {
- try {
- Arguments args = getArguments();
- args.addArgument(TestElement.NAME, getName()); // Allow Sampler access
- // to test element name
- context = new JavaSamplerContext(args);
- if (javaClient == null) {
- log.debug(whoAmI() + "\tCreating Java Client");
- createJavaClient();
- registerForCleanup(javaClient, context);
- javaClient.setupTest(context);
- }
-
- SampleResult result = javaClient.runTest(context);
-
- // Only set the default label if it has not been set
- if (result != null && result.getSampleLabel().length() == 0) {
- result.setSampleLabel(getName());
- }
-
- return result;
- } catch(Exception ex) {
- SampleResult sampleResultIfError = new SampleResult();
- sampleResultIfError.setSampleLabel(getName());
- sampleResultIfError.setSuccessful(false);
- sampleResultIfError.setResponseCode("500"); // $NON-NLS-1$
- sampleResultIfError.setResponseMessage(ExceptionUtils.getRootCauseMessage(ex));
- sampleResultIfError.setResponseData(ExceptionUtils.getStackTrace(ex), "UTF-8");
- return sampleResultIfError;
+ Arguments args = getArguments();
+ args.addArgument(TestElement.NAME, getName()); // Allow Sampler access
+ // to test element name
+ context = new JavaSamplerContext(args);
+ if (javaClient == null) {
+ log.debug(whoAmI() + "\tCreating Java Client");
+ createJavaClient();
+ javaClient.setupTest(context);
}
+
+ SampleResult result = javaClient.runTest(context);
+
+ // Only set the default label if it has not been set
+ if (result != null && result.getSampleLabel().length() == 0) {
+ result.setSampleLabel(getName());
+ }
+
+ return result;
}
/**
@@ -191,7 +177,7 @@ public class JavaSampler extends Abstrac
* @throws SecurityException
*/
private final void registerForCleanup(JavaSamplerClient jsClient,
- JavaSamplerContext jsContext) throws SecurityException, NoSuchMethodException {
+ JavaSamplerContext jsContext) throws SecurityException, NoSuchMethodException {
if(isToBeRegistered(jsClient.getClass())) {
javaClientAndContextSet.add(new Object[]{jsClient, jsContext});
}
@@ -237,6 +223,8 @@ public class JavaSampler extends Abstrac
log.debug(whoAmI() + "\tCreated:\t" + getClassname() + "@"
+ Integer.toHexString(javaClient.hashCode()));
}
+
+ registerForCleanup(javaClient, context);
} catch (Exception e) {
log.error(whoAmI() + "\tException creating: " + getClassname(), e);
javaClient = new ErrorSamplerClient();