Hello folks, using function __machineName on WindowsXP with java version "1.4.2_10" do not work and writes errors to jmeter.log: 2007/12/27 10:58:49 ERROR - jmeter.threads.JMeterThread: java.lang.NullPointerException at org.apache.jmeter.functions.MachineName.execute(MachineName.java:66) at org.apache.jmeter.engine.util.CompoundVariable.execute (CompoundVariable.java:128) at org.apache.jmeter.engine.util.CompoundVariable.execute (CompoundVariable.java:97) at org.apache.jmeter.testelement.property.FunctionProperty.getStringValue (FunctionProperty.java:85) at org.apache.jmeter.testbeans.TestBeanHelper.prepare (TestBeanHelper.java:70) at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:297) at java.lang.Thread.run(Unknown Source) Java-Vesion: ------------ java version "1.4.2_10" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_10-b03) Java HotSpot(TM) Client VM (build 1.4.2_10-b03, mixed mode) We are planing a distributed (Remote-)Database-Test-Plan, and we want to prevent sharing conflicts by using the machineName as a part of the database tablenames. Please have a look to the problem. Thanks in advance, Michael.
How does the function call look in the test plan? I've found that ${__machineName} causes the problem, but ${__machineName()} and ${__machineName(var)} work fine. Obviously the NPE needs to be fixed, but hopefully you will find that one of the alternatives works for you.
The __machineName function parameter is currently required, so ${__machineName} is not valid syntax - but it should not generate an NPE. ${__machineName()} is currently parsed as if there was one parameter - the empty string - which is why that syntax works OK. I'll probably make the parameter optional.
(In reply to comment #2) > The __machineName function parameter is currently required, so > ${__machineName} is not valid syntax - but it should not generate an NPE. > ${__machineName()} is currently parsed as if there was one parameter - the > empty string - which is why that syntax works OK. > I'll probably make the parameter optional. Thank you, these hint solves our problem: ${__machineName()} works fine. My recommendation: Just correct the documentation of Functions and Variables (chapter 19 in ..\jakarta-jmeter-2.3.1\docs\usermanual\functions.html) rather than make the parameter optional. Kind regards, Michael.
Thanks for confirming that the problem is resolved. Re-opening as the NPE is not yet fixed. Note that the documentation *IS* currently correct - it states that the parameter is required. I think it still make sense to make the variable name optional.
Fixed in SVN: r608515 (parsing) and r608524 (optional varname)
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/2057