Uploaded image for project: 'Crowd Data Center'
  1. Crowd Data Center
  2. CWD-3156

DirectoryCreatedEvent published with unsaved Directory

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 2.6.1
    • 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
      

      Attachments

        Issue Links

          Activity

            People

              richatkins Richard Atkins
              richatkins Richard Atkins
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: