It's all about the answers!

Ask a question

How do I determine which user is running an Asynchronous Task


Andrew Soloninka (5511924) | asked Jul 03 '13, 3:55 p.m.
edited Jul 03 '13, 4:53 p.m.
 I have an Asynchronous Task that runs perfectly on Tomcat and Jetty on my system. However, when I deploy it on Websphere Application Server.on another system, The Asynchronous Task errors:

TeamOperationCanceledException: CRJAZ6053E The 'Request Build' operation cannot be completed. Permission is required to complete the operation.

How do I determine which user is running the Asynchronous Task?

Accepted answer


permanent link
Jorge Diaz (8664234) | answered Jul 04 '13, 5:23 a.m.
JAZZ DEVELOPER
edited Jul 04 '13, 5:25 a.m.
Hi Andrew,

looking at AbstractAutoScheduledTask, it has the following method:

public final String getRunAsUserId() {
	
        return Contributor.ADMIN;
	
    }
	
	

Which is called as part of the task context setup.

I ran a dummy test in a task, within the "runTask()" method:

IRepositoryItemService repoService = getService(IRepositoryItemService.class);
IContributorHandle contribHandle = getAuthenticatedContributor();
IContributor contrib = (IContributor) repoService.fetchItem(contribHandle, IRepositoryItemService.COMPLETE);
System.out.println("User ID" + contrib.getUserId() + " name: " + contrib.getName());	
	

and it printed out in my console:

User IDADMIN name: ADMIN
	
	

Hope this helps.

Regards,

Jorge.
Andrew Soloninka selected this answer as the correct answer

Your answer


Register or to post your answer.