Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Groovy trim function raise an error #2747

limor ·
I added a Groovy function that check if parameter is not null.
In order to remove spaces and \n I used trim:

groovy:
vars.get("run_cosmo_integration_test").setValue("false");
vars.get("cosmo_unit_tests_success").setValue("false");

cosmo_unit_tests_fail=vars.get("cosmo_unit_tests_fail");
logger.info("cosmo_unit_tests_fail="+cosmo_unit_tests_fail+"end");

if (cosmo_unit_tests_fail.trim().empty)
{

logger.info("*******cosmo_unit_tests_fail is null********");
vars.get("cosmo_unit_tests_success").setValue("true");
}
else
{
logger.info("*******cosmo_unit_tests_fail is not null********");
}

I get the following error:

12:37:54,948 [master>cosmo_tests_remote>check_unit_tests_results@pc-lab128:8811] ERROR - Step 'master>cosmo_tests_remote>check_unit_tests_results' is failed.
java.lang.RuntimeException: Failed to evaluate below expression:
groovy:
vars.get("run_cosmo_integration_test").setValue("false");
vars.get("cosmo_unit_tests_success").setValue("false");
cosmo_unit_tests_fail=vars.get("cosmo_unit_tests_fail");
logger.info("cosmo_unit_tests_fail="+cosmo_unit_tests_fail+"end");
if (cosmo_unit_tests_fail.trim().empty)
{

logger.info("*******cosmo_unit_tests_fail is null********");
vars.get("cosmo_unit_tests_success").setValue("true");
}
else
{
logger.info("*******cosmo_unit_tests_fail is not null********");
}
at com.pmease.quickbuild.util.ExceptionUtils.wrapException(ExceptionUtils.java:87)
at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:93)
at com.pmease.quickbuild.plugin.basis.ScriptStep.run(ScriptStep.java:47)
at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$9155cf83.CGLIB$run$1(<generated>)
at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$9155cf83$$FastClassByCGLIB$$9fbd52f1.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:270)
at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$9155cf83.run(<generated>)
at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:479)
at com.pmease.quickbuild.stepsupport.StepExecutionJob.executeStepAwareJob(StepExecutionJob.java:29)
at com.pmease.quickbuild.stepsupport.StepAwareJob.executeBuildAwareJob(StepAwareJob.java:47)
at com.pmease.quickbuild.BuildAwareJob.execute(BuildAwareJob.java:61)
at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:78)
at java.lang.Thread.run(Thread.java:744)
Caused by: com.pmease.quickbuild.QuickbuildException: groovy.lang.MissingMethodException: No signature of method: com.pmease.quickbuild.variable.VariableWrapper.trim() is applicable for argument types: () values: []
Possible solutions: wait(), wait(long), grep(java.lang.Object), is(java.lang.Object), print(java.io.PrintWriter), print(java.lang.Object)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:54)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at script13957438748601499023089.run(script13957438748601499023089.groovy:8)
at com.pmease.quickbuild.plugin.basis.BasisPlugin$18.evaluate(BasisPlugin.java:261)
at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:80)
at com.pmease.quickbuild.plugin.basis.ScriptStep.run(ScriptStep.java:47)
at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$9155cf83.CGLIB$run$1(<generated>)
at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$9155cf83$$FastClassByCGLIB$$9fbd52f1.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:270)
at com.pmease.quickbuild.plugin.basis.ScriptStep$$EnhancerByCGLIB$$9155cf83.run(<generated>)
at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:479)
at com.pmease.quickbuild.stepsupport.StepExecutionJob.executeStepAwareJob(StepExecutionJob.java:29)
at com.pmease.quickbuild.stepsupport.StepAwareJob.executeBuildAwareJob(StepAwareJob.java:47)
at com.pmease.quickbuild.BuildAwareJob.execute(BuildAwareJob.java:61)
at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:78)
at java.lang.Thread.run(Thread.java:744)
at com.pmease.quickbuild.plugin.basis.BasisPlugin$18.evaluate(BasisPlugin.java:285)
at com.pmease.quickbuild.DefaultScriptEngine.evaluate(DefaultScriptEngine.java:80)
... 12 more

Please your advice.
  • replies 7
  • views 3739
  • stars 0
robinshen ADMIN ·
Change below line:
cosmo_unit_tests_fail=vars.get("cosmo_unit_tests_fail");

as this:
cosmo_unit_tests_fail=vars.getValue("cosmo_unit_tests_fail");
limor ·
Now I'm trying to set variable with '\n'

groovy:

def permanent_links="http://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/nightly/cloudify-components_amd64.deb\nhttp://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/nightly/cloudify-core_amd64.deb\nhttp://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/nightly/ubuntu-agent_amd64.deb\nhttp://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/nightly/cloudify-ui_amd64.deb"

vars.getValue("nightly_links").setValue(permanent_links);

I got the error:

Caused by: com.pmease.quickbuild.QuickbuildException: java.lang.NullPointerException: Cannot invoke method setValue() on null object
limor ·
Actually I want the nightly_links var will include the following:
"http://gigaspaces-repository-eu.s3.amazonaws.com/org/cloudify3/nightly/cloudify-components_amd64.deb
http://gigaspaces-repository-eu.s3.amaz ... _amd64.deb
http://gigaspaces-repository-eu.s3.amaz ... _amd64.deb
http://gigaspaces-repository-eu.s3.amaz ... _amd64.deb"
robinshen ADMIN ·
The variable "nightly_links" has to be defined in your configuration first. Also please use below instead to set variable value
vars.get("nightly_links").setValue(permanent_links);
limor ·
I did but the problem that when I display this vat in mail template it looks like that:
the \n is translated to space in stead new line

permanent components package:
http://gigaspaces-repository-eu.s3.amaz ... _amd64.deb
robinshen ADMIN ·
How about doing it this way:

<pre>
${vars.getValue("nightly_links")}
</pre>
limor ·
Thanks it worked