Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1687

Lots of NPE when parsing documents at start time

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Trivial
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.0.8, 2.1.2
    • Component/s: None
    • Labels:
      None

      Description

      I've noticed lots of NPE with the following stack trace:

      Signal Dispatcher@475 daemon, priority=9, in group 'system', status: 'RUNNING'

      Finalizer@476 daemon, priority=8, in group 'system', status: 'WAIT'
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
      at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

      Reference Handler@477 daemon, priority=10, in group 'system', status: 'WAIT'
      at java.lang.Object.wait(Object.java:-1)
      at java.lang.Object.wait(Object.java:474)
      at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

      main@2, priority=5, in group 'main', status: 'RUNNING'
      at org.apache.cxf.staxutils.W3CDOMStreamWriter.writeComment(W3CDOMStreamWriter.java:162)
      at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:338)
      at org.apache.cxf.staxutils.StaxUtils.copy(StaxUtils.java:313)
      at org.apache.cxf.bus.spring.TunedDocumentLoader.loadFastinfosetDocument(TunedDocumentLoader.java:146)
      at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.fastInfosetLoadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:164)
      at org.apache.cxf.bus.spring.ControlledValidationXmlBeanDefinitionReader.loadBeanDefinitions(ControlledValidationXmlBeanDefinitionReader.java:126)
      at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
      at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
      at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:108)
      at org.apache.cxf.bus.spring.BusApplicationContext.loadBeanDefinitions(BusApplicationContext.java:256)
      at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
      at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:389)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
      at org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:87)
      at org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:103)
      at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:94)
      at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:69)
      at org.apache.servicemix.cxfse.CxfSeComponent.doInit(CxfSeComponent.java:73)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.init(AsyncBaseLifeCycle.java:193)
      at org.apache.servicemix.common.SyncLifeCycleWrapper.init(SyncLifeCycleWrapper.java:44)
      at org.apache.servicemix.jbi.framework.ComponentMBeanImpl.init(ComponentMBeanImpl.java:201)
      at org.apache.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:1,150)
      at org.apache.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:1,112)
      at org.apache.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:1,071)
      at org.apache.servicemix.jbi.container.JBIContainer.activateComponent(JBIContainer.java:1,059)
      at org.apache.servicemix.jbi.container.SpringJBIContainer.getComponentForEndpoint(SpringJBIContainer.java:175)
      at org.apache.servicemix.jbi.container.SpringJBIContainer.initEndpoints(SpringJBIContainer.java:151)
      at org.apache.servicemix.jbi.container.SpringJBIContainer.afterPropertiesSet(SpringJBIContainer.java:106)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1,201)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1,171)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
      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:160)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
      at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:161)
      at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:51)
      at org.apache.servicemix.cxfse.CxfSeContextInjectionTest.createBeanFactory(CxfSeContextInjectionTest.java:71)
      at org.apache.servicemix.tck.SpringTestSupport.setUp(SpringTestSupport.java:65)
      at org.apache.servicemix.cxfse.CxfSeContextInjectionTest.setUp(CxfSeContextInjectionTest.java:39)
      at junit.framework.TestCase.runBare(TestCase.java:125)
      at junit.framework.TestResult$1.protect(TestResult.java:106)
      at junit.framework.TestResult.runProtected(TestResult.java:124)
      at junit.framework.TestResult.run(TestResult.java:109)
      at junit.framework.TestCase.run(TestCase.java:118)
      at junit.framework.TestSuite.runTest(TestSuite.java:208)
      at junit.framework.TestSuite.run(TestSuite.java:203)
      at junit.framework.TestSuite.runTest(TestSuite.java:208)
      at junit.framework.TestSuite.run(TestSuite.java:203)
      at junit.textui.TestRunner.doRun(TestRunner.java:116)
      at com.intellij.rt.execution.junit.IdeaTestRunner.doRun(IdeaTestRunner.java:65)
      at junit.textui.TestRunner.doRun(TestRunner.java:109)
      at com.intellij.rt.execution.junit.IdeaTestRunner.startRunnerWithArgs(IdeaTestRunner.java:24)
      at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:118)
      at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)

      The NPE is thrown because the currentNode is null in the writer, which seems to be the case when the xml document starts with a comment. Not sure why, but I suppose it should be quite easy to fix and could improve performance at start time.

        Attachments

          Activity

            People

            • Assignee:
              dkulp Daniel Kulp
              Reporter:
              gnodet Guillaume Nodet
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: