Getting below error
java.lang.ClassCastException: com.riadalabs.jira.plugins.insight.services.model.ObjectAttributeValueBean cannot be cast to java.lang.String
at com.atlassian.jira.issue.label.DefaultLabelManager.validateLabels(DefaultLabelManager.java:288)
at com.atlassian.jira.issue.label.DefaultLabelManager.setLabels(DefaultLabelManager.java:83)
at com.atlassian.jira.issue.label.LabelManager$setLabels.call(Unknown Source)
at 51-Update-CABMember-to-Approvers.run(51-Update-CABMember-to-Approvers.groovy:73)
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.user.ApplicationUser
import org.apache.commons.lang.StringUtils
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.customfields.option.*
import org.apache.commons.logging.Log
import com.atlassian.jira.issue.label.LabelManager
//import com.riadalabs.jira.plugins.insight.services.model.ObjectBean
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.event.type.EventDispatchOption
//import com.riadalabs.jira.plugins.insight.services.model.ObjectBean
//import com.riadalabs.jira.plugins.insight.services.model.ObjectAttributeValueBean
import java.util.List
import org.apache.log4j.Logger
//Get Insight Classes
Class objectFacadeClass = ComponentAccessor.getPluginAccessor().getClassLoader().findClass("com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectFacade");
Class objectTypeAttributeFacadeClass = ComponentAccessor.getPluginAccessor().getClassLoader().findClass("com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectTypeAttributeFacade");
Class objectAttributeBeanFactoryClass = ComponentAccessor.getPluginAccessor().getClassLoader().findClass("com.riadalabs.jira.plugins.insight.services.model.factory.ObjectAttributeBeanFactory");
Class iqlFacadeClass = ComponentAccessor.getPluginAccessor().getClassLoader().findClass("com.riadalabs.jira.plugins.insight.channel.external.api.facade.IQLFacade");
def objectFacade = ComponentAccessor.getOSGiComponentInstanceOfType(objectFacadeClass);
def objectTypeAttributeFacade = ComponentAccessor.getOSGiComponentInstanceOfType(objectTypeAttributeFacadeClass);
def objectAttributeBeanFactory = ComponentAccessor.getOSGiComponentInstanceOfType(objectAttributeBeanFactoryClass);
def iqlFacade = ComponentAccessor.getOSGiComponentInstanceOfType(iqlFacadeClass);
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
//get custom fields
CustomField approversCF = ComponentAccessor.getCustomFieldManager().getCustomFieldObject(11718) //Approvers
CustomField e2eProcessCF = ComponentAccessor.getCustomFieldManager().getCustomFieldObject(15222) //E2 E Process
CustomField companiesCF = ComponentAccessor.getCustomFieldManager().getCustomFieldObject(15300) //Companied label field
def e2eProcessCFValues = issue.getCustomFieldValue(e2eProcessCF)
def cabMember = objectTypeAttributeFacade.loadObjectTypeAttributeBean(3678) // CAB Member Attribute
def e2eProcessCompany = objectTypeAttributeFacade.loadObjectTypeAttributeBean(3667) // E2E Process - Company
def company = objectTypeAttributeFacade.loadObjectTypeAttributeBean(3676) // Company Attribute
log.error "E2E process : " + e2eProcessCFValues
//Load issue manager
def issueManager = ComponentAccessor.getIssueManager()
def labelManager = ComponentAccessor.getComponent(LabelManager)
def value = []
def labelsToSet = []
e2eProcessCFValues.each { e2eProcessCFValue ->
def e2eProcessKey = objectFacade.loadObjectBean(e2eProcessCFValue.getId()).getObjectKey()
log.error "E2E Process Key : " + e2eProcessKey
def e2ePeocessCompanys = iqlFacade.findObjects("ObjectType = \"E2E Process - Company\" AND object HAVING inboundReferences(Key = ${e2eProcessKey})")
log.error " E2E process Company : " + e2ePeocessCompanys
e2ePeocessCompanys.each { e2ePeocessCompany ->
if(objectFacade.loadObjectAttributeBean(e2ePeocessCompany.getId(), cabMember.getId()).getObjectAttributeValueBeans()){
def valuesOfCABMembers = objectFacade.loadObjectAttributeBean(e2ePeocessCompany.getId(), cabMember.getId()).getObjectAttributeValueBeans()
valuesOfCABMembers.each { valuesOfCABMember ->
value.add(ComponentAccessor.getUserManager().getUserByKey(valuesOfCABMember.getValue().toString())) //CAB member Key
log.error "values : " + value
}
}
// issue.setCustomFieldValue(approversCF,value)
//def existingLabels = labelManager.getLabels(issue.id)*.label
if(objectFacade.loadObjectAttributeBean(e2ePeocessCompany.getId(), company.getId()).getObjectAttributeValueBeans()){
def valuesOfCompanys = objectFacade.loadObjectAttributeBean(e2ePeocessCompany.getId(), company.getId()).getObjectAttributeValueBeans()
valuesOfCompanys.each { valuesOfCompany ->
labelsToSet.add(valuesOfCompany)
log.error " @@@@@ Test values : " + labelsToSet
}
}
}
}
issue.setCustomFieldValue(approversCF,value)
//labelManager.addLabel(user, issue.id, new Long("15300"), labelsToSet.toSet(), false)
labelManager.setLabels(user, issue.id, new Long("15300"), labelsToSet.toSet(), false,false)
issueManager.updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
Probably need get value from value beans
labelsToSet.add(valuesOfCompany.value)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.