How to Write a Groovy Expression that Specifies a Component?

randyz September 25, 2014

I'm trying to set a watcher field based on project component specific condition post-script called "Set Field Value to Constant or Groovy expression", 

Setting the Watcher function works without the component condition but fails when I set a condition. 

I tried:

issue.get("components") == "13098"

issue.get("components") == "Component Name"

issueObject.get("components") == "13098"

issueObject.get("components") == "Component Name"

This is similar to https://answers.atlassian.com/questions/285260 but Component instead of custom field. 

2 answers

1 accepted

1 vote
Answer accepted
Jobin Kuruvilla [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 25, 2014

Checkout Jamie's answer here.

0 votes
randyz September 25, 2014

Hi Jobin,

Thanks for your reply!

Tried it as "issue.components*.name.contains('Component Name')

Screen Shot 2014-09-25 at 5.52.29 PM.png

got this error in logs:

[jmwe.plugins.functions.SetFieldValueFunction] Error while executing SetFieldValueFunction: java.lang.ClassCastException: org.slf4j.impl.Log4jLoggerAdapter cannot be cast to java.lang.Boolean
java.lang.ClassCastException: org.slf4j.impl.Log4jLoggerAdapter cannot be cast to java.lang.Boolean
Jobin Kuruvilla [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 25, 2014

You might want to post the full script. I am not sure where logging comes in here!

Henning Tietgens
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 25, 2014

Reading the comment below the box I think you have to use issueObject instead of issue. So try issueObject.components*.name.contains('Component Name')

randyz September 26, 2014

issueObject.components*.name.contains('Component Name') and issue.components*.name.contains('Component Name') both works. The culprit was "log" =( Thanks everyone!

Suggest an answer

Log in or Sign up to answer