Uploaded image for project: 'ServiceMix Components'
  1. ServiceMix Components
  2. SMXCOMP-280

Data loss due to random exceptions in a saxon service unit

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.2.1
    • servicemix-saxon
    • None
    • Linux and Solaris x86
      Java: "1.5.0_07"

    Description

      I'm having a problem with data loss in service mix. My servicemix log files contain random exceptions coming from the saxon engine. The details and exceptions are outlined below.

      I have a service assembly as follows: JMS consumer -> XSLT ( XML 1 to XML 2) -> XSLT (XML 2 to SOAP) -> HTTP provider. In addition, each service unit above is linked togethor using an eip:pipeline.

      I have a JMS client that pushes a single XML message X number of times. I want to emphasize that I push the same XML message every time. Hence, the content never changes during experimentation. In addition, every time I enqueue that XML message X times, I start from a clean slate. Which means, I shutdown servicemix, clear the data directory, then restart servicemix. The XML message I push is roughly 500 bytes of data.

      Roughly 50% of the time enqueuing 100 messages, I will see 100 messages reach the HTTP Provider. The other 50% of the time enqueuing 100 messages, I will see one or more of the following exception in my servicemix log file.

      Exception 1)
      java.lang.NullPointerException
      at java.util.Hashtable.get(Hashtable.java:336)
      at org.xml.sax.helpers.NamespaceSupport$Context.processName(NamespaceSupport.java:642)
      at org.xml.sax.helpers.NamespaceSupport.processName(NamespaceSupport.java:341)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:182)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.send(DOMSender.java:95)
      at net.sf.saxon.dom.DOMObjectModel.sendSource(DOMObjectModel.java:113)
      at net.sf.saxon.event.Sender.send(Sender.java:194)
      at net.sf.saxon.event.Sender.send(Sender.java:43)
      at net.sf.saxon.PreparedStylesheet.loadStylesheetModule(PreparedStylesheet.java:214)
      at net.sf.saxon.PreparedStylesheet.prepare(PreparedStylesheet.java:139)
      at net.sf.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:137)
      at org.apache.servicemix.saxon.XsltEndpoint.createTemplates(XsltEndpoint.java:123)
      at org.apache.servicemix.saxon.XsltEndpoint.getTemplates(XsltEndpoint.java:113)
      at org.apache.servicemix.saxon.XsltEndpoint.createTransformer(XsltEndpoint.java:141)
      at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:72)
      at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)
      at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
      at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675

      Exception 2)
      java.lang.NullPointerException
      at org.apache.xerces.dom.ParentNode.nodeListItem(Unknown Source)
      at org.apache.xerces.dom.ParentNode.item(Unknown Source)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:134)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.outputElement(DOMSender.java:225)
      at net.sf.saxon.dom.DOMSender.walkNode(DOMSender.java:142)
      at net.sf.saxon.dom.DOMSender.send(DOMSender.java:95)
      at net.sf.saxon.dom.DOMObjectModel.sendSource(DOMObjectModel.java:113)
      at net.sf.saxon.event.Sender.send(Sender.java:194)
      at net.sf.saxon.event.Sender.send(Sender.java:43)
      at net.sf.saxon.PreparedStylesheet.loadStylesheetModule(PreparedStylesheet.java:214)
      at net.sf.saxon.PreparedStylesheet.prepare(PreparedStylesheet.java:139)
      at net.sf.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:137)
      at org.apache.servicemix.saxon.XsltEndpoint.createTemplates(XsltEndpoint.java:123)
      at org.apache.servicemix.saxon.XsltEndpoint.getTemplates(XsltEndpoint.java:113)
      at org.apache.servicemix.saxon.XsltEndpoint.createTransformer(XsltEndpoint.java:141)
      at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:72)
      at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)

      Exception 3)
      net.sf.saxon.trans.DynamicError: org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted.
      at net.sf.saxon.dom.DOMWriter.characters(DOMWriter.java:179)
      at net.sf.saxon.event.ImplicitResultChecker.characters(ImplicitResultChecker.java:39)
      at net.sf.saxon.event.ProxyReceiver.characters(ProxyReceiver.java:179)
      at net.sf.saxon.event.ComplexContentOutputter.characters(ComplexContentOutputter.java:138)
      at net.sf.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates.java:359)
      at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:310)
      at net.sf.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates.java:349)
      at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:310)
      at net.sf.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates.java:349)
      at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:310)
      at net.sf.saxon.instruct.ApplyTemplates.defaultAction(ApplyTemplates.java:349)
      at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:310)
      at net.sf.saxon.Controller.transformDocument(Controller.java:1706)
      at net.sf.saxon.Controller.transform(Controller.java:1513)
      at org.apache.servicemix.saxon.XsltEndpoint.transformContent(XsltEndpoint.java:95)
      at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:74)
      at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)
      at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
      at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
      at java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1455)
      at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:384)
      at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:867)
      at org.apache.servicemix.executors.impl.ExecutorImpl.execute(ExecutorImpl.java:43)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue.enqueue(SedaQueue.java:128)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.enqueuePacket(SedaFlow.java:182)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java:162)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.java:123)

      Exception 4)
      javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.
      at net.sf.saxon.PreparedStylesheet.prepare(PreparedStylesheet.java:153)
      at net.sf.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:137)
      at org.apache.servicemix.saxon.XsltEndpoint.createTemplates(XsltEndpoint.java:123)
      at org.apache.servicemix.saxon.XsltEndpoint.getTemplates(XsltEndpoint.java:113)
      at org.apache.servicemix.saxon.XsltEndpoint.createTransformer(XsltEndpoint.java:141)
      at org.apache.servicemix.saxon.XsltEndpoint.transform(XsltEndpoint.java:72)
      at org.apache.servicemix.saxon.SaxonEndpoint.processInOut(SaxonEndpoint.java:220)
      at org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:109)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:538)
      at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:490)
      at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:46)
      at org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:610)
      at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:170)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:167)
      at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)

      Attachments

        Activity

          People

            Unassigned Unassigned
            seth.cleveland@amd.com Seth Cleveland
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: