Saxon component should gracefully handle malformed XML messages ---------------------------------------------------------------
Key: SM-1418 URL: https://issues.apache.org/activemq/browse/SM-1418 Project: ServiceMix Issue Type: Bug Components: servicemix-saxon Affects Versions: 3.2.1 Reporter: Trevor Pounds Fix For: 3.3 Attachments: scenario.png Currently the saxon component does not handle malformed XML messages gracefully. When a malformed XML is encountered during SAX parsing an error is sent back on the exchange generated from the underlying exception. There should be a way for these messages to be handled by the fault target in the EIP pipeline. This is particularly giving us problems with a transacted JMS consumer (i.e. spring based JMS BC) which retries each time an error exchange is received from the saxon component. Once the retry limit it reached (default = 6 retries), the invalid XML message is placed in a queue named 'ActiveMQ.DLQ'. I've attached an image showing a similar setup to the deployment we are using which encounters this problem. I've also attached a log message with the full stack trace removed for brevity but should give the general idea of the case which needs to be handled. {noformat} 10 Jun 2008 05:02:24,867 | ERROR | pool-flow.seda.servicemix-saxon-thread-4 | SaxonComponent | ervicemix.common.BaseLifeCycle 48 | Error processing exchange InOut[ id: ID:165.204.220.146-11a6ef0bf06-12:19482 status: Active role: provider service: {xslt-test}xslt-test-translator endpoint: in: Unable to display: org.xml.sax.SAXParseException: Content is not allowed in prolog. out: null ] net.sf.saxon.trans.DynamicError: org.xml.sax.SAXParseException: The element type "Elements" must be terminated by the matching end-tag "</Elements>". ... org.xml.sax.SAXParseException: The element type "Elements" must be terminated by the matching end-tag "</Elements>". ... {noformat} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.