NullPointerException in when searching for user to be added to Permission

Still need help?

The Atlassian Community is here for you.

Ask the community

Problem

Bamboo is configured to use LDAP for user management.

Searching for user to be added to the Permission, will have a popup window error with the following message:

java.lang.NullPointerException
	at com.atlassian.bamboo.plugins.rest.permission.BasicPermissionResource.lambda$getAvailableUsers$1(BasicPermissionResource.java:103)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174)
	at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1812)
	at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$222(StreamSpliterators.java:294)
	at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
	at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
	at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
	at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
	at com.atlassian.bamboo.plugins.rest.pagination.PaginationServiceImpl.getPageResponse(PaginationServiceImpl.java:76)
	at com.atlassian.bamboo.plugins.rest.pagination.PaginationServiceImpl.getPage(PaginationServiceImpl.java:36)
	at com.atlassian.bamboo.plugins.rest.permission.BasicPermissionResource.getAvailableUsers(BasicPermissionResource.java:104)
	at com.atlassian.bamboo.plugins.rest.permission.GlobalPermissionsResource.getAvailableUsers(GlobalPermissionsResource.java:143)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$TypeOutInvoker$1.invoke(DispatchProviderHelper.java:169)
	at com.atlassian.plugins.rest.common.interceptor.impl.DispatchProviderHelper$1.intercept(DispatchProviderHelper.java:83)

Diagnosis

Environment

  • Bamboo version 6.2.1+

Diagnostic Steps

  • Check what is the username attribute configured in the file BAMBOO_HOME/xml-data/configuration/atlassian-user.xml , for example: 

            <ldap key="adRepository" name="AD Repository" cache="true">
                <host>localhost</host>
                <port>389</port>
    
                <securityPrincipal>uid=admin,ou=system</securityPrincipal>
                <securityCredential>secret</securityCredential>
                <baseUserNamespace>ou=Users,DC=example,DC=com</baseUserNamespace>
     
                <userSearchFilter>(objectClass=person)</userSearchFilter>
                <usernameAttribute>mail</usernameAttribute>
  • Run ldapsearch command to check if all the users have usernameAttribute, for example: 

    ldapsearch -h localhost -p 389 -b "ou=Users,dc=example,dc=com" -D "uid=admin,ou=system" -w "secret" \(\&\(objectClass=person\)\(\!\(mail=*\)\)\) 

    This command will return user entries that does not have mail attribute.

Cause

The username attribute configured in Bamboo does not exist in all the LDAP users.

Resolution

  • Make sure that all the LDAP user have the attribute that is configured to be used as username in Bamboo.
    OR
  • Include the usernameAttribute into the user search filter in the file atlassian-user.xml and restart Bamboo, for example: 

                <userSearchFilter>(&amp;(objectClass=person)(mail=*))</userSearchFilter>
                <usernameAttribute>mail</usernameAttribute>

 

 

Last modified on Oct 19, 2017

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.