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();
     }
 
     /**