ServiceMethodInvocationError when fetching repository permissions for current user
I am using following code to see what repository permissions the currently logged in user has.
public RepositoryPermissions getRepositoryPermissions(final String userId) {
if (!this.repo.loggedIn()) {
throw new IllegalStateException("Not logged in repository: " + this.repo.getRepositoryURI());
}
IExternalUserRegistryManager userRegistryManager = this.repo.externalUserRegistryManager();
try {
// this calls throws an exception if the currently logged in user does not have JazzAdmins permissions and it is
// tried to get the permissions for a different user than the currently logged in one.
String[] groupsForUser = userRegistryManager.fetchGroupsForUser(userId, null);
boolean isJazzGuest = false;
boolean isJazzUser = false;
boolean isJazzAdmin = false;
boolean isJazzDWAdmin = false;
boolean isJazzProjectAdmin = false;
for (String group : groupsForUser) {
switch (group) {
case IPermissionService.JAZZ_ADMINS:
isJazzAdmin = true;
break;
case IPermissionService.JAZZ_DW_ADMINS:
isJazzDWAdmin = true;
break;
case IPermissionService.JAZZ_GUESTS:
isJazzGuest = true;
break;
case IPermissionService.JAZZ_PROJECT_ADMINS:
isJazzProjectAdmin = true;
break;
case IPermissionService.JAZZ_USERS:
isJazzUser = true;
break;
default:
throw new IllegalStateException("Unsupported group encountered! Please add to switch clause!");
}
}
return new RepositoryPermissions(isJazzGuest, isJazzUser, isJazzDWAdmin, isJazzProjectAdmin, isJazzAdmin, userId);
}
catch (TeamRepositoryException e) { // NOSONAR
return null;
}
For my user account I always get the above mentioned exception with the following stacktrace.
com.ibm.team.repository.common.transport.ServiceMethodInvocationError: java.lang.NullPointerException: An error response was received from the Jazz Team Server. Status=500. Message: null
at com.ibm.team.repository.transport.client.RemoteTeamService.getAppropriateException(RemoteTeamService.java:740)
at com.ibm.team.repository.transport.client.RemoteTeamService.executeMethod(RemoteTeamService.java:573)
at com.ibm.team.repository.transport.client.RemoteTeamService.invoke(RemoteTeamService.java:202)
at com.ibm.team.repository.transport.client.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:43)
at com.sun.proxy.$Proxy20.fetchGroupsForUser(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invokeServiceCall(ServiceInterfaceProxy.java:254)
at com.ibm.team.repository.client.internal.ServiceInterfaceProxy.invoke(ServiceInterfaceProxy.java:110)
at com.sun.proxy.$Proxy20.fetchGroupsForUser(Unknown Source)
at com.ibm.team.repository.client.internal.ExternalUserRegistryManager$8.run(ExternalUserRegistryManager.java:304)
at com.ibm.team.repository.client.internal.ExternalUserRegistryManager$8.run(ExternalUserRegistryManager.java:1)
at com.ibm.team.repository.client.internal.TeamRepository$3.run(TeamRepository.java:1327)
at com.ibm.team.repository.common.transport.CancelableCaller.call(CancelableCaller.java:79)
at com.ibm.team.repository.client.internal.TeamRepository.callCancelableService(TeamRepository.java:1322)
at com.ibm.team.repository.client.internal.TeamPlatformObject.callCancelableService(TeamPlatformObject.java:42)
at com.ibm.team.repository.client.internal.ExternalUserRegistryManager.callCancelableService(ExternalUserRegistryManager.java:393)
at com.ibm.team.repository.client.internal.ExternalUserRegistryManager.fetchGroupsForUser(ExternalUserRegistryManager.java:302)
A colleague of mine can run the code without any problems.
Any idea what the problem could be?
I am running RTC 5.0.2 that has an external user registry (LDAP).
In the repository where I want to get the permissions from my user has the permissions JazzProjectAdmin and JazzUser
|
Be the first one to answer this question!
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.
Comments