0

I have a problem processing IDocs with WSO2 ESB 4.8.1. Each time an IDoc with empty segments (which seems to be a valid IDoc) is incoming Xerces will throw an error:

ERROR - Axis2IDocHandler Error while processing the IDoc through the Axis engine
java.lang.NullPointerException
    at com.sun.org.apache.xerces.internal.impl.XML11NSDocumentScannerImpl.scanStartElement(XML11NSDocumentScannerImpl.java:351)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
    at com.sun.org.apache.xerces.internal.impl.XML11NSDocumentScannerImpl.next(XML11NSDocumentScannerImpl.java:852)
    at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:554)
    at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
    at org.apache.axiom.util.stax.dialect.DisallowDoctypeDeclStreamReaderWrapper.next(DisallowDoctypeDeclStreamReaderWrapper.java:34)
    at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.next(XMLStreamReaderWrapper.java:225)
    at org.apache.axiom.util.stax.dialect.SJSXPStreamReaderWrapper.next(SJSXPStreamReaderWrapper.java:138)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:681)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
    at org.apache.axiom.om.impl.llom.OMElementImpl.getNextOMSibling(OMElementImpl.java:336)
    at org.apache.axiom.om.impl.traverse.OMChildrenIterator.getNextNode(OMChildrenIterator.java:36)
    at org.apache.axiom.om.impl.traverse.OMAbstractIterator.hasNext(OMAbstractIterator.java:58)
    at org.apache.axiom.om.impl.traverse.OMFilterIterator.hasNext(OMFilterIterator.java:54)
    at org.wso2.carbon.transports.sap.idoc.util.IDoCAdapterUtils.stampArcKey(IDoCAdapterUtils.java:62)
    at org.wso2.carbon.transports.sap.idoc.Axis2IDocHandler$IDocWorker.run(Axis2IDocHandler.java:132)
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:662)

This is likely to be a problem in the JDKs Xerces implementation as described here.

Is there any way to setup Axis2 to use another stream reader or is there any other solution to this problem?

Community
  • 1
  • 1
Edik
  • 1

1 Answers1

0

You can try with upgrading the Xerces jar file by placing the latest version jar file under ESB_HOME/repository/components/lib directory.

Chanaka udaya
  • 5,134
  • 4
  • 27
  • 34
  • I already did. I placed the xercesImpl.jar and xml-apis.jar in that directory, but this has no effects at all! I guess the problem is that the package name of the JDK's Xerces implementation (com.sun.org.apache.xerces.internal.impl) is slightly different than the original one (org.apache.xerces.impl)! – Edik Jul 24 '15 at 08:15