-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Low
-
Affects Version/s: 4.4.3
-
Component/s: None
-
4.04
It looks like CE can return null for application that isn't handled by us.
CrowdDirectoryServiceImpl
private void storeLdapConnectionPoolConfiguration(Application application)
{
Map<String, String> attributes = application.getAttributes();
ConnectionPoolProperties connectionPoolConfiguration = DefaultConnectionPoolProperties.fromPropertiesMap(attributes);
Map<String, String> propertiesMap = connectionPoolConfiguration.toPropertiesMap();
for (Map.Entry<String, String> entry : propertiesMap.entrySet())
{
if (entry.getValue() != null) // ignore property if value is null; values set by JVM or on command line (-D...) will take precedence
{
logger.debug("Setting system-wide LDAP connection pool property: <" + entry.getKey() + "> with value: <" + entry.getValue() + ">");
System.setProperty(entry.getKey(), entry.getValue());
}
}
}
CrowdEmbeddedApplicationFactory can return null:
public Application getApplication()
{
try
{
final Application application = applicationDao.findByName(APPLICATION_NAME);
return application;
}
catch (ApplicationNotFoundException e)
{
// This should only happen during initial system setup.
// The embedding application should always provide an application once fully set up.
log.debug("Crowd application : " + APPLICATION_NAME + " not found.");
return null;
}
}
java.lang.NullPointerException at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.storeLdapConnectionPoolConfiguration(CrowdDirectoryServiceImpl.java:308) at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.initialiseConnectionPoolSystemProperties(CrowdDirectoryServiceImpl.java:291) at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.getApplication(CrowdDirectoryServiceImpl.java:263) at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.findAllDirectories(CrowdDirectoryServiceImpl.java:81) at com.atlassian.jira.user.util.DefaultUserManager.getWritableDirectories(DefaultUserManager.java:256) at com.atlassian.jira.user.util.DefaultUserManager.hasPasswordWritableDirectory(DefaultUserManager.java:272) at com.atlassian.jira.bc.security.login.LoginServiceImpl.getLoginProperties(LoginServiceImpl.java:92) at com.atlassian.jira.bc.security.login.LoginServiceImpl.getLoginProperties(LoginServiceImpl.java:108) at com.atlassian.jira.web.action.Dashboard.buildLoginProperties(Dashboard.java:212) at com.atlassian.jira.web.action.Dashboard.getCurrentDashboardState(Dashboard.java:199) at com.atlassian.jira.web.action.Dashboard.doValidation(Dashboard.java:116) at webwork.action.ActionSupport.validate(ActionSupport.java:391) at webwork.action.ActionSupport.execute(ActionSupport.java:162) at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:76) at webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:39) at webwork.interceptor.NestedInterceptorChain.proceed(NestedInterceptorChain.java:31) at webwork.interceptor.ChainedInterceptor.intercept(ChainedInterceptor.java:16) at webwork.interceptor.DefaultInterceptorChain.proceed(DefaultInterceptorChain.java:35) ...
Workaround:
- Connect JIRA to an empty database.
- Restore XML backup from the Setup page.
