I have a script that takes a member group and splits the current users into an email string that gets used by a custom email function. The erro I am getting says
2017-06-20 15:28:36,113 ERROR [workflow.ScriptWorkflowFunction]: Special Test Priority Value option: 5 - Stop working on everything else and get this done 2017-06-20 15:28:36,113 ERROR [workflow.ScriptWorkflowFunction]: The reporter is: Hank Hepler 2017-06-20 15:28:36,113 ERROR [workflow.ScriptWorkflowFunction]: Testing out DSTR 2017-06-20 15:28:36,160 ERROR [workflow.ScriptWorkflowFunction]: ************************************************************************************* 2017-06-20 15:28:36,160 ERROR [workflow.ScriptWorkflowFunction]: Script function failed on issue: null, actionId: 1, file: <inline script> org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'a092rzz(a092rzz)' with class 'com.atlassian.jira.user.DelegatingApplicationUser' to class 'com.atlassian.crowd.embedded.api.User' at Script104.getGroupEmails(Script104.groovy:83) at Script104.run(Script104.groovy:55)
I fixed the null issue error, but am kind of lost on the casting of the object. How can I get the users in the correct object (User)? Below is the function... we just upgraded to 7 so I have this in multiple places.
def getGroupEmails(String groupName) { def gusers = new StringBuilder(); def userManager = ComponentAccessor.getUserManager(); def groupManager = ComponentAccessor.getGroupManager(); def group = userManager.getGroup(groupName); List<User> usersInGroup = (List)groupManager.getDirectUsersInGroup(group) for (User user : usersInGroup){ if (gusers.length() > 0) gusers.append( ", " ); gusers.append( user.getEmailAddress() ); } return gusers.toString(); }
Any help will be greatly appreciated!
Thanks,
Hank
3M Systems Engineer
Hi Hank,
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users in a group actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know how you get on with that.
Thanks,
Adam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hank,
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users in a group actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know how you get on with that.
Thanks,
Adam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users in a group actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know how you get on with that.
Thanks,
Adam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hank,
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users in a group actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know how you get on with that.
Thanks,
Adam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hank,
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know how you get on with that.
Thanks,
Adam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hank,
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know hoiw you get on with that.
Thanks,
Adam
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hank,
Apologies for the delay in responding. In JIRA 7 the User is now an ApplicationUser. So the method where you get the users actually returns ApplicationUser's now.
You can find more information in this section of our documentation found here. There's also more information to help you change you update your scripts for 7 there so it's well worth a read.
I've taken this opportunity to tidy up your code a bit and simplify your logic, hope you don't mind:
import com.atlassian.jira.component.ComponentAccessor def getGroupEmails(String groupName) { def userManager = ComponentAccessor.getUserManager() def groupManager = ComponentAccessor.getGroupManager() def group = userManager.getGroup(groupName) def usersInGroup = groupManager.getDirectUsersInGroup(group) usersInGroup.each { user -> if (gusers.length() > 0) { gusers.append(",") } gusers.append(user.getEmailAddress()) } def groupUsers = usersInGroup*.emailAddress.join(",") groupUsers }
Let us know hoiw you get on with that.
Thanks,
Adam
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.