Details
-
Bug
-
Resolution: Done
-
Major
-
1.4.3.0-fuse
-
None
-
None
Description
We have a really simple use case that works fine on MR 1.4.1 and 1.4.2, but throws an exception on 1.4.3.
The exception is:
SEVERE: Failed delivery for exchangeId: ID-S206035J4463581/3455-1222349716850/0-0. On delivery attempt: 1 caught: org.apache.camel.RuntimeCamelException: org.xml.sax.SAXParseException: Premature end of file.
org.apache.camel.RuntimeCamelException: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:440)
at org.apache.camel.impl.converter.InstanceMethodTypeConverter.convertTo(InstanceMethodTypeConverter.java:57)
at org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:83)
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:59)
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:50)
at org.apache.camel.processor.validation.ValidatingProcessor.process(ValidatingProcessor.java:56)
at org.apache.camel.impl.ProcessorEndpoint.onExchange(ProcessorEndpoint.java:92)
at org.apache.camel.impl.ProcessorEndpoint$1.process(ProcessorEndpoint.java:66)
at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:43)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:75)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:41)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:57)
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:56)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:174)
at org.apache.camel.processor.DeadLetterChannel.process(DeadLetterChannel.java:96)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:85)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:57)
at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:39)
at org.apache.camel.component.jetty.CamelContinuationServlet.service(CamelContinuationServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:264)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at org.apache.camel.converter.jaxp.XmlConverter.toDOMSourceFromStream(XmlConverter.java:378)
at org.apache.camel.converter.jaxp.XmlConverter.toDOMSource(XmlConverter.java:233)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:436)
... 35 more
It seems to be a problem with using the same stream for the second time.
In order to run the test case:
build both projects using Maven
run tests.camel.CamelApplication from camel-fuse-testcase
run com.sabre.camel.HttpClient from camel-http-client
observe an exception in the CamelApplication console
If you change Camel version in camel-fuse-testcase to 1.4.2.0 (pom.xml), it works fine.