Details
-
Bug
-
Resolution: Fixed
-
Low
-
None
-
None
-
None
Description
The DirectoryCreatedEvent is published with the Directory passed to com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.addDirectory(Directory). However, the DAO for saving the directory returns a different instance - one with a nonnull ID.
Failing to publish the ID for the directory means that any calls to look up the corresponding RemoteDirectory will trigger a null pointer exception in com.atlassian.crowd.directory.loader.DbCachingRemoteDirectoryInstanceLoaderImpl.getNewDirectory(Directory).
2013-02-22 17:02:26,475 ERROR [main] [atlassian.event.internal.AsynchronousAbleEventDispatcher] run There was an exception thrown trying to dispatch event 'com.atlassian.crowd.event.directory.DirectoryCreatedEvent@a2764ff4' from the invoker 'SingleParameterMethodListenerInvoker{method=public void com.atlassian.confluence.user.crowd.DirectoryCreationListener.OnDirectoryCreated(com.atlassian.crowd.event.directory.DirectoryCreatedEvent), listener=com.atlassian.confluence.user.crowd.DirectoryCreationListener@56b4e212}'. java.lang.RuntimeException: java.lang.NullPointerException at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:50) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:66) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:32) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:60) at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:152) at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:71) at com.atlassian.crowd.manager.directory.DirectoryManagerGeneric.addDirectory(DirectoryManagerGeneric.java:141) at com.atlassian.crowd.embedded.core.CrowdDirectoryServiceImpl.addDirectory(CrowdDirectoryServiceImpl.java:57) at com.atlassian.confluence.user.crowd.ConfluenceCrowdDirectoryService.addDirectory(ConfluenceCrowdDirectoryService.java:39) at com.atlassian.confluence.user.migration.CrowdRepositoryConfigurationMigrator.migrate(CrowdRepositoryConfigurationMigrator.java:87) at com.atlassian.confluence.user.migration.AtlassianUserMigrator.migrate(AtlassianUserMigrator.java:55) at com.atlassian.confluence.upgrade.upgradetask.AtlassianUserToEmbeddedCrowdConfigurationUpgradeTask.doUpgrade(AtlassianUserToEmbeddedCrowdConfigurationUpgradeTask.java:72) 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:601) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy80.doUpgrade(Unknown Source) at com.atlassian.studio.confluence.startup.ConfluenceInitialData.setupEmbeddedCrowdDetails(ConfluenceInitialData.java:271) at com.atlassian.studio.confluence.startup.ConfluenceInitialData.start(ConfluenceInitialData.java:110) at com.atlassian.startup.StartupExtensionRunner.run(StartupExtensionRunner.java:41) at com.atlassian.startup.StartupExtensionServlet.init(StartupExtensionServlet.java:22) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4149) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4458) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:850) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:724) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:493) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:583) 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:601) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.NullPointerException at com.atlassian.crowd.directory.loader.DbCachingRemoteDirectoryInstanceLoaderImpl.getNewDirectory(DbCachingRemoteDirectoryInstanceLoaderImpl.java:98) at com.atlassian.crowd.directory.loader.CachingDirectoryInstanceLoader.getDirectory(CachingDirectoryInstanceLoader.java:41) at com.atlassian.crowd.directory.loader.DelegatingDirectoryInstanceLoader.getDirectory(DelegatingDirectoryInstanceLoader.java:73) at com.atlassian.confluence.user.crowd.DirectoryCreationListener.isJiraJdbcRemoteDirectory(DirectoryCreationListener.java:68) at com.atlassian.confluence.user.crowd.DirectoryCreationListener.OnDirectoryCreated(DirectoryCreationListener.java:53) 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:601) at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36) ... 52 more