I am writing code to create a new linked issue and I am having the following error thrown
void createFeature(Issue issue, Collection<ProjectComponent> componentList){
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def authenticationContext = ComponentAccessor.jiraAuthenticationContext
def issueFactory = ComponentAccessor.getIssueFactory()
def issueManager = ComponentAccessor.getIssueManager()
def userManager = ComponentAccessor.getUserUtil()
def currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
long issueLinkType= 10070 as long
long sequence =1 as long
long newissueTypeID= 19 as long
long myissueID= issue.getId() as long
// the key of the project under which the version will get created
final String projectKey = "SF"
// the start date - optional
final Date startDate = null
// the release date - optional
final Date releaseDate = null
// a description for the new version - optional
final String description = null
// id of the version to schedule after the given version object - optional
final Long scheduleAfterVersion = null
// true if this is a released version
final boolean released = false
def project = ComponentAccessor.projectManager.getProjectObjByKey(projectKey)
assert project : "Could not find project with key $projectKey"
def projectComponentManager = ComponentAccessor.getProjectComponentManager()
int counter=0
for(ProjectComponent component: componentList){
MutableIssue newissue= ComponentAccessor.issueFactory.getIssue()
//set values
newissue.setIssueTypeId("19")
newissue.setSummary("MOUNA CAMELIA")
newissue.setDescription("MOUNA CAMELIA")
newissue.reporter = issue.getReporter()
// you can *add* labels like this (using the syntax above would overwrite all labels)
// newissue = newissue.update {
// setLabels {
// add('SF-Child')
// }
// }
String componentName= component.getName()
log.warn("MOUNA CAMELIA HELLO 5 "+component)
def shortenedComponentName = componentName.substring(componentName.indexOf("-")+1)
def projectName = componentName.substring(0, componentName.indexOf("-"))
log.warn("MOUNA CAMELIA HELLO 6 projectName--"+projectName+"--" )
def newIssueproject = ComponentAccessor.projectManager.getProjectObjByKey(projectName)
newissue.setProjectObject(newIssueproject)
log.warn("MOUNA CAMELIA ISSUE GET VERSIONS "+newIssueproject.getVersions()+"-========= ")
List<String> newIssueProjectVersionIDs= new ArrayList<String>()
for(Version myver: newIssueproject.getVersions()){
newIssueProjectVersionIDs.add(myver.getName())
}
log.warn("MOUNA CAMELIA newIssueProjectVersionIDs "+newIssueProjectVersionIDs+"-========= ")
def mynewVersions = new ArrayList <Version> ()
for( Version v: issue.getFixVersions()){
log.warn("MOUNA CAMELIA VERSION V "+v.getName())
if(newIssueProjectVersionIDs.contains(v.getName())){
Version mynewVersion= ComponentAccessor.versionManager.createVersion(v.getName()+"-Inbox", startDate, releaseDate, description, newIssueproject.id, scheduleAfterVersion, released)
mynewVersions.add(mynewVersion)
log.warn("MOUNA CAMELIA TRUE")
}else{
log.warn("MOUNA CAMELIA FALSE")
}
}
newissue.setFixVersions(mynewVersions)
def customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("customfield_10790");// here replace the ID with ID of your custom field.
Integer value = issue.getCustomFieldValue(customField) as Integer;
// def sampleTextField = getFieldByName(value)
log.warn("MOUNA CAMELIA VALUE "+value )
log.warn("MOUNA CAMELIA HELLO 6 newIssueproject "+newIssueproject )
log.warn("MOUNA CAMELIA HELLO 7 component.getDescription() "+component.getDescription() )
log.warn("MOUNA CAMELIA HELLO 8 component.getLead() "+ component.getLead() )
log.warn("MOUNA CAMELIA HELLO 9 component.assigneeType() "+ component.assigneeType )
log.warn("MOUNA CAMELIA HELLO 10 component.getProjectId() "+ component.getProjectId() )
log.warn("MOUNA CAMELIA HELLO 11--"+shortenedComponentName+"--")
ProjectComponent newComponent = projectComponentManager.create(shortenedComponentName,component.getDescription(),
component.getLead(),component.getAssigneeType(),component.getProjectId())
log.warn("MOUNA CAMELIA HELLO 7 "+newComponent.getName())
List<ProjectComponent> mynewComponentList = new ArrayList<ProjectComponent>()
mynewComponentList.add(newComponent)
newissue.setComponent(mynewComponentList)
log.warn(" MOUNA CAMELIA ==========================COMPONENT NUMBER "+counter +" "+component)
def newIssueCreated = issueManager.createIssueObject(currentUserObj, newissue)
log.warn(" MOUNA CAMELIA 2 ==========================")
long newIssueCreatedID= newIssueCreated.getId() as long
def labelManager = ComponentAccessor.getComponent(LabelManager)
labelManager.addLabel(authenticationContext.getLoggedInUser(), newIssueCreatedID, "SF-Child", false)
def issueToLink = issueManager.getIssueObject(newIssueCreated.getKey())
log.warn(" MOUNA CAMELIA 4 ==========================")
log.warn("MOUNA CAMELIA ===== myissueID ====="+ myissueID+" =====newissueTypeID ====="+newIssueCreated.getId()
+" =====issueLinkType ====="+issueLinkType
+" =====sequence ====="+ sequence +" =====authenticationContext.getLoggedInUser() ====="+authenticationContext.getLoggedInUser()
)
issueLinkManager.createIssueLink(newIssueCreatedID, myissueID, issueLinkType, sequence, authenticationContext.getLoggedInUser())
counter++
}
}
The line causing the problem is:
issueLinkManager.createIssueLink(newIssueCreatedID, myissueID, issueLinkType, sequence, authenticationContext.getLoggedInUser())
Anyone knows how to fix this problem?
Hi @Mouna Hammoudi ,
try to update your code from :
def issueLinkManager = ComponentAccessor.getIssueLinkManager()
def authenticationContext = ComponentAccessor.jiraAuthenticationContext
def issueFactory = ComponentAccessor.getIssueFactory()
def issueManager = ComponentAccessor.getIssueManager()
def userManager = ComponentAccessor.getUserUtil()
def currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
...
to this
IssueLinkManager issueLinkManager = ComponentAccessor.getIssueLinkManager();
JiraAuthenticationContext authenticationContext = ComponentAccessor.getJiraAuthenticationContext();
IssueFactory issueFactory = ComponentAccessor.getIssueFactory();
IssueManager issueManager = ComponentAccessor.getIssueManager();
UserUtil userManager = ComponentAccessor.getUserUtil();
ApplicationUser currentUserObj = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
...
It should fix your issue.
Fabio
@Fabio Racobaldo _Herzum_ I have replaced the code and I am still having the same error.
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.
@Fabio Racobaldo _Herzum_ it is the component that I am applying my code to
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.