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.