Hello,
I would like to make a validator with simple scripted validator.
Parent Feature is the key of linked issue.
Internal Feature is a custom field, type Checkbox , It has one option- 'Yes'.
I have an error- java.lang.NullPointerException, and the code all the time return false.. What is the problem with my code ?
Thanks.
The code is:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
//get the parent feature issue
Issue featureT = ComponentAccessor.issueManager.getIssueObject('Parent Feature');
//custom field internal feature
def internal = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Internal Feature");
def selectedValues = internal.getValue(featureT);
def bool=true;
if(selectedValues!=null)
{
bool=true;
}
else
{
if(featureIssue.fixVersions != issue.fixVersions)
{
bool=false;
}
}
return bool;
Hi Daniel,
Is it the whole script?
not sure what the value 'Parent Feature' in the following line represent, the getIssueObject function should get an issue key (e.g. TEST-54)
Issue featureT = ComponentAccessor.issueManager.getIssueObject('Parent Feature');
Dar
Hey @Dan27
As I can see from your script, you have a few problems-
1) You store some string when you get the Feature issue object- if you meat that the string "Parent Feature" is a field that contains the Feature key- you can see it in the script I added (if you don't need it like that and you have some absolute issue key, you can add it hardcoded in the script)
2) You are not consistent with the variables (where does "featureIssue" come from?)
3) When you take value from a custom field (selectedValues) first you need to take the issue object, value, and custom field, like this- issue.getCustomFieldValue(cf)
Try this:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
def customFieldManager = ComponentAccessor.getCustomFieldManager();
//get the parent feature issue
String parentFeatureKey = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectByName("Parent Feature"));
Issue featureIssue = ComponentAccessor.issueManager.getIssueObject(parentFeatureKey);
//custom field internal feature
def internal = customFieldManager.getCustomFieldObjectByName("Internal Feature");
def selectedValues = featureIssue.getCustomFieldValue(internal);
def bool=true;
if(selectedValues!=null){
bool=true;
}else{
if(featureIssue.fixVersions != issue.fixVersions){
bool=false;
}
}
return bool
Hope this information will help you in the future.
Let me know if it's work for you
Neta
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.