Details
-
Bug
-
Resolution: Fixed
-
Medium
-
1.1.1
-
None
Description
When integrated with Bamboo, the following exception is thrown in Bamboo, when a user attempts to update their profile.
Stack Trace:
com.atlassian.core.exception.InfrastructureException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException; nested exception is: org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException at bucket.user.DefaultUserAccessor.saveUser(DefaultUserAccessor.java:228) at com.atlassian.bamboo.user.BambooUserManagerImpl.saveUser(BambooUserManagerImpl.java:126) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy6.saveUser(Unknown Source) at com.atlassian.bamboo.ww2.actions.admin.user.ConfigureProfile.execute(ConfigureProfile.java:109) at com.atlassian.bamboo.ww2.actions.admin.user.ConfigureProfile.doUpdate(ConfigureProfile.java:47)
In Crowd the exception is the following:
08:34:20,365 ERROR org.codehaus.xfire.handler.DefaultFaultHandler: Fault occurred! java.lang.NullPointerException at com.atlassian.crowd.integration.model.RemotePrincipal.getEmail(RemotePrincipal.java:81) at com.atlassian.crowd.integration.directory.connector.SpringLDAPConnector.updatePrincipal(SpringLDAPConnector.java:688) at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.updatePrincipalAttribute(DirectoryManagerGeneric.java:1738) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:88) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy9.updatePrincipalAttribute(Unknown Source) at com.atlassian.crowd.service.soap.SecurityServerGeneric.updatePrincipalAttribute(SecurityServerGeneric.java:310)
The underlying issue is an unsafe call to the Principals attributes, via the getEmail() call.