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

xmlOutputFactory cannot be injected into plugin

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • None
    • None
    • None
    • None

    Description

      I did a constructor injection in Table of Content plugin using xmlOutputFactory. Following is the error I get :

      [INFO] [talledLocalContainer]  -- referer: http://localhost:1990/confluence/admin/uninstallplugin.action?pluginKey=org.randombits.confluence.toc&atl_t
      oken=447d3e900004c553df6bb40c8cd8c5db9f9c176b | url: /confluence/admin/olduploadplugin.action | userName: admin | action: olduploadplugin
      [INFO] [talledLocalContainer] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'staxDocumentOutlineCreator' defi
      ned in URL [bundle://79.0:0/META-INF/spring/toc-context.xml]: Cannot resolve reference to bean 'xmlOutputFactory' while setting constructor argument;
      nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xmlOutputFactory' is defined
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.
      java:275)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueRe
      solver.java:104)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:
      479)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:162)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCa
      pableBeanFactory.java:925)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCap
      ableBeanFactory.java:835)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBe
      anFactory.java:440)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFacto
      ry.java:409)
      [INFO] [talledLocalContainer]   at java.security.AccessController.doPrivileged(Native Method)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBean
      Factory.java:380)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.ja
      va:222)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFa
      ctory.java:429)
      [INFO] [talledLocalContainer]   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationC
      ontext.java:728)
      [INFO] [talledLocalContainer]   at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegated
      ExecutionApplicationContext.java:69)
      [INFO] [talledLocalContainer]   at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecut
      ionApplicationContext.java:355)
      [INFO] [talledLocalContainer]   at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
      [INFO] [talledLocalContainer]   at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDeleg
      atedExecutionApplicationContext.java:320)
      [INFO] [talledLocalContainer]   at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$Complete
      RefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
      [INFO] [talledLocalContainer]   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      [INFO] [talledLocalContainer]   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      [INFO] [talledLocalContainer]   at java.lang.Thread.run(Thread.java:619)
      [INFO] [talledLocalContainer] Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'xmlOutputFactory' is defined
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.j
      ava:387)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java
      :971)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:246)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
      [INFO] [talledLocalContainer]   at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.
      java:269)
      

      However in renderingContext.xml, I can see that xmlOutputFactory can be injected to other classes. For example,

      <bean id="storageMacroMarshaller"
                class="com.atlassian.confluence.content.render.xhtml.storage.macro.StorageMacroMarshaller">
              <constructor-arg ref="xmlOutputFactory"/>
      </bean>
      

      xmlOutputFactory should be available to plugins as it is configured as "plugin:available="true""

      Attachments

        Activity

          People

            rthomas@atlassian.com RyanA
            kfchong KaiA
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: