Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-10786

Spring component plugins with transaction proxies can not be installed via web UI

    XMLWordPrintable

Details

    Description

      When trying to load a spring component plugins that utilizes the Spring transaction proxy, the following exception will be thrown:

      008-02-22 09:27:03,669 INFO [main] [com.atlassian.confluence.lifecycle] contextInitialized Starting Confluence @VERSION@ (build #@BUILD_NUMBER@)
      2008-02-22 09:27:28,850 WARN [main] [com.atlassian.upgrade.AbstractUpgradeManager] needUpgrade Build numbers are not parseable. Upgrade skipped
      2008-02-22 09:28:09,244 ERROR [main] [com.atlassian.plugin.DefaultPluginManager] enablePluginModules There was an error loading the descriptor 'Invite Manager Transaction Proxy' of plugin 'com.atlassian.confluence.extra.invite'. Disabling.
      com.atlassian.spring.container.ComponentNotFoundException: Failed to find component: Error creating bean with name 'inviteManager' defined in class path resource [x]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.lang.Class[]] for property 'proxyInterfaces'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.atlassian.confluence.extra.invite.InviteManager]. Root cause: java.lang.ClassNotFoundException: com.atlassian.confluence.extra.invite.InviteManager
      at com.atlassian.spring.container.SpringContainerContext.getComponent(SpringContainerContext.java:79)
      at com.atlassian.spring.container.ContainerManager.getComponent(ContainerManager.java:32)
      at com.atlassian.confluence.plugin.descriptor.SpringComponentModuleDescriptor.enabled(SpringComponentModuleDescriptor.java:128)
      at com.atlassian.plugin.DefaultPluginManager.enablePluginModules(DefaultPluginManager.java:471)
      at com.atlassian.plugin.DefaultPluginManager.addPlugin(DefaultPluginManager.java:258)
      at com.atlassian.plugin.DefaultPluginManager.init(DefaultPluginManager.java:74)
      at com.atlassian.confluence.plugin.ConfluencePluginManager.init(ConfluencePluginManager.java:140)
      at com.atlassian.confluence.plugin.ConfluencePluginManager.processConfluenceReadyEvent(ConfluencePluginManager.java:244)
      at com.atlassian.confluence.plugin.ConfluencePluginManager.onApplicationEvent(ConfluencePluginManager.java:153)
      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:296)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy5.onApplicationEvent(Unknown Source)
      at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
      at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
      at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
      at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
      at com.atlassian.event.DefaultEventManager.publishEvent(DefaultEventManager.java:65)
      at com.atlassian.confluence.event.ConfluenceEventManager.publishEvent(ConfluenceEventManager.java:19)
      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:296)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      at $Proxy0.publishEvent(Unknown Source)
      at com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager.upgrade(DefaultUpgradeManager.java:60)
      at com.atlassian.upgrade.UpgradeLauncherServletContextListener.contextInitialized(UpgradeLauncherServletContextListener.java:26)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3764)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
      at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
      at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
      at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
      at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
      at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      at org.apache.catalina.core.StandardService.start(StandardService.java:448)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
      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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
      Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'inviteManager' defined in class path resource [x]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.lang.Class[]] for property 'proxyInterfaces'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.atlassian.confluence.extra.invite.InviteManager]. Root cause: java.lang.ClassNotFoundException: com.atlassian.confluence.extra.invite.InviteManager
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:448)
      at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:229)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
      at com.atlassian.spring.container.SpringContainerContext.getComponent(SpringContainerContext.java:75)
      ... 62 more
      Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [java.lang.Class[]] for property 'proxyInterfaces'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.atlassian.confluence.extra.invite.InviteManager]. Root cause: java.lang.ClassNotFoundException: com.atlassian.confluence.extra.invite.InviteManager
      at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:385)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1111)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
      ... 68 more
      Caused by: java.lang.IllegalArgumentException: Cannot find class [com.atlassian.confluence.extra.invite.InviteManager]. Root cause: java.lang.ClassNotFoundException: com.atlassian.confluence.extra.invite.InviteManager
      at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:223)
      at org.springframework.beans.propertyeditors.ClassArrayEditor.setAsText(ClassArrayEditor.java:66)
      at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:326)
      at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:310)
      at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)
      at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
      at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:380)
      ... 71 more

      The XML configuration of the bean is shown below:

       <component key='inviteManagerTarget' name='Invite Manager' class='com.atlassian.confluence.extra.invite.DefaultInviteManager' />
      
          <spring name="Invite Manager Transaction Proxy" key="inviteManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
              <property name="transactionManager">
                  <ref local="transactionManager"/>
              </property>
              <property name="target">
                  <ref local="inviteManagerTarget"/>
              </property>
              <property name="transactionAttributes">
                  <props>
                      <prop key="*">PROPAGATION_REQUIRED</prop>
                  </props>
              </property>
              <property name="proxyInterfaces">
                  <value>com.atlassian.confluence.extra.invite.InviteManager</value>
              </property>
              <property name="preInterceptors">
                  <list>
                      <ref local="actAsInterceptor"/>
                  </list>
              </property>
              <property name="postInterceptors">
                  <list>
                      <ref local="profilingInterceptor"/>
                  </list>
              </property>
          </spring>
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jens@atlassian.com jens
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: