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 2017/02/07 21:33:49 UTC
svn commit: r1782083 - in /jmeter/trunk/src:
core/org/apache/jmeter/resources/messages.properties
core/org/apache/jmeter/resources/messages_fr.properties
protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java
Author: pmouawad
Date: Tue Feb 7 21:33:49 2017
New Revision: 1782083
URL: http://svn.apache.org/viewvc?rev=1782083&view=rev
Log:
Bug 55652 - JavaSampler silently resets classname if class can not be found
Fix regression: When Element is added parameters are not set and improve warning
Bugzilla Id: 55652
Modified:
jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java
Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties?rev=1782083&r1=1782082&r2=1782083&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages.properties Tue Feb 7 21:33:49 2017
@@ -440,7 +440,7 @@ ja=Japanese
jar_file=Jar Files
java_request=Java Request
java_request_defaults=Java Request Defaults
-java_request_warning=Classname not found in classpath, ensure you add the required jar
+java_request_warning=<html>Classname not found in classpath, ensure you add the required jar and restart. <br/> If you modify "Classname" before you may lose the parameters of the original test plan.<html>
javascript_expression=JavaScript expression to evaluate
jexl_expression=JEXL expression to evaluate
jms_auth_required=Required
Modified: jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties?rev=1782083&r1=1782082&r2=1782083&view=diff
==============================================================================
--- jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties (original)
+++ jmeter/trunk/src/core/org/apache/jmeter/resources/messages_fr.properties Tue Feb 7 21:33:49 2017
@@ -435,7 +435,7 @@ ja=Japonais
jar_file=Fichiers .jar
java_request=Requ\u00EAte Java
java_request_defaults=Requ\u00EAte Java par d\u00E9faut
-java_request_warning=Class introuvable dans le classpath, veuillez ajouter le jar la contenant
+java_request_warning=<html>Classe introuvable dans le classpath, veuillez ajouter le jar la contenant et red\u00E9marrer.<br/>Ne modifiez pas "Nom de classe" avant sinon vous perdrez les param\u00E8tres.</html>
javascript_expression=Expression JavaScript \u00E0 \u00E9valuer
jexl_expression=Expression JEXL \u00E0 \u00E9valuer
jms_auth_required=Obligatoire
Modified: jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java
URL: http://svn.apache.org/viewvc/jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java?rev=1782083&r1=1782082&r2=1782083&view=diff
==============================================================================
--- jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java (original)
+++ jmeter/trunk/src/protocol/java/org/apache/jmeter/protocol/java/config/gui/JavaConfigGui.java Tue Feb 7 21:33:49 2017
@@ -176,51 +176,58 @@ public class JavaConfigGui extends Abstr
@Override
public void stateChanged(ChangeEvent evt) {
if (evt.getSource() == classNameLabeledChoice) {
- String className = classNameLabeledChoice.getText().trim();
- try {
- JavaSamplerClient client = (JavaSamplerClient) Class.forName(className, true,
- Thread.currentThread().getContextClassLoader()).newInstance();
+ configureClassName();
+ }
+ }
- Arguments currArgs = new Arguments();
- argsPanel.modifyTestElement(currArgs);
- Map<String, String> currArgsMap = currArgs.getArgumentsAsMap();
-
- Arguments newArgs = new Arguments();
- Arguments testParams = null;
- try {
- testParams = client.getDefaultParameters();
- } catch (AbstractMethodError e) {
- log.warn("JavaSamplerClient doesn't implement "
- + "getDefaultParameters. Default parameters won't "
- + "be shown. Please update your client class: " + className);
- }
+ /**
+ *
+ */
+ private void configureClassName() {
+ String className = classNameLabeledChoice.getText().trim();
+ try {
+ JavaSamplerClient client = (JavaSamplerClient) Class.forName(className, true,
+ Thread.currentThread().getContextClassLoader()).newInstance();
+
+ Arguments currArgs = new Arguments();
+ argsPanel.modifyTestElement(currArgs);
+ Map<String, String> currArgsMap = currArgs.getArgumentsAsMap();
- if (testParams != null) {
- for (JMeterProperty jMeterProperty : testParams.getArguments()) {
- Argument arg = (Argument) jMeterProperty.getObjectValue();
- String name = arg.getName();
- String value = arg.getValue();
-
- // If a user has set parameters in one test, and then
- // selects a different test which supports the same
- // parameters, those parameters should have the same
- // values that they did in the original test.
- if (currArgsMap.containsKey(name)) {
- String newVal = currArgsMap.get(name);
- if (newVal != null && newVal.length() > 0) {
- value = newVal;
- }
+ Arguments newArgs = new Arguments();
+ Arguments testParams = null;
+ try {
+ testParams = client.getDefaultParameters();
+ } catch (AbstractMethodError e) {
+ log.warn("JavaSamplerClient doesn't implement "
+ + "getDefaultParameters. Default parameters won't "
+ + "be shown. Please update your client class: " + className);
+ }
+
+ if (testParams != null) {
+ for (JMeterProperty jMeterProperty : testParams.getArguments()) {
+ Argument arg = (Argument) jMeterProperty.getObjectValue();
+ String name = arg.getName();
+ String value = arg.getValue();
+
+ // If a user has set parameters in one test, and then
+ // selects a different test which supports the same
+ // parameters, those parameters should have the same
+ // values that they did in the original test.
+ if (currArgsMap.containsKey(name)) {
+ String newVal = currArgsMap.get(name);
+ if (newVal != null && newVal.length() > 0) {
+ value = newVal;
}
- newArgs.addArgument(name, value);
}
+ newArgs.addArgument(name, value);
}
-
- argsPanel.configure(newArgs);
- warningLabel.setVisible(false);
- } catch (Exception e) {
- log.error("Error getting argument list for " + className, e);
- warningLabel.setVisible(true);
}
+
+ argsPanel.configure(newArgs);
+ warningLabel.setVisible(false);
+ } catch (Exception e) {
+ log.error("Error getting argument list for " + className, e);
+ warningLabel.setVisible(true);
}
}
@@ -249,6 +256,7 @@ public class JavaConfigGui extends Abstr
warningLabel.setVisible(!classOk(className));
classNameLabeledChoice.setText(className);
+ configureClassName();
}
/**