Improving NoTypeConversionAvailableException message with cause
----------------------------------------------------------------
Key: CAMEL-4781
URL: https://issues.apache.org/jira/browse/CAMEL-4781
Project: Camel
Issue Type: Improvement
Components: camel-core
Reporter: Willem Jiang
Assignee: Willem Jiang
Fix For: 2.9.1
The NoTypeConversionAvailableException message is misleading when it is caused
by other exception.
It just eats up the cause message and let us think there is no converter which
can turn an InputStream
into a Dom from theThe below exception stack trace.
{code}
org.apache.camel.InvalidPayloadException: No body available of type:
org.w3c.dom.Document but has value:
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4c4571c5 of
type: sun.net.www.protocol.http.HttpURLConnection.HttpInputStream on: Message:
[Body is instance of java.io.InputStream]. Caused by: No type converter
available to convert from type:
sun.net.www.protocol.http.HttpURLConnection.HttpInputStream to the required
type: org.w3c.dom.Document with value
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4c4571c5.
Exchange[Message: [Body is instance of java.io.InputStream]]. Caused by:
[org.apache.camel.NoTypeConversionAvailableException - No type converter
available to convert from type:
sun.net.www.protocol.http.HttpURLConnection.HttpInputStream to the required
type: org.w3c.dom.Document with value
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4c4571c5]
at
org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:58)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:171)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.fabric.FabricTraceProcessor.process(FabricTraceProcessor.java:59)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.Pipeline.process(Pipeline.java:116)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.Pipeline.access$100(Pipeline.java:42)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.Pipeline$1.done(Pipeline.java:134)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.DefaultChannel$1.done(DefaultChannel.java:317)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.RedeliveryErrorHandler$1.done(RedeliveryErrorHandler.java:330)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.interceptor.TraceInterceptor$1.done(TraceInterceptor.java:188)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.management.InstrumentationProcessor$1.done(InstrumentationProcessor.java:78)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.ProducerCache$1.done(ProducerCache.java:307)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.processor.SendProcessor$2$1.done(SendProcessor.java:119)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.component.cxf.CxfClientCallback.handleResponse(CxfClientCallback.java:62)[143:org.apache.camel.camel-cxf:2.8.0.fuse-01-13]
at
org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:818)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream$1.run(HTTPConduit.java:1498)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueueImpl.java:353)[133:org.apache.cxf.bundle:2.4.3.fuse-00-13]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_23]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_23]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_23]
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
converter available to convert from type:
sun.net.www.protocol.http.HttpURLConnection.HttpInputStream to the
required type: org.w3c.dom.Document with value
sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@4c4571c5
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:140)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.core.osgi.OsgiTypeConverter.mandatoryConvertTo(OsgiTypeConverter.java:110)[91:org.apache.camel.camel-spring:2.8.0.fuse-01-13]
at
org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
... 36 more
Caused by: org.apache.camel.RuntimeCamelException:
org.xml.sax.SAXParseException: Premature end of file.
at
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:832)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.converter.InstanceMethodTypeConverter.convertTo(InstanceMethodTypeConverter.java:69)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:182)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:138)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
... 38 more
Caused by: org.xml.sax.SAXParseException: Premature end of file.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)[:]
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)[:]
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:110)[:]
at
org.apache.camel.converter.jaxp.XmlConverter.toDOMDocument(XmlConverter.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)[:1.6.0_23]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_23]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_23]
at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_23]
at
org.apache.camel.util.ObjectHelper.invokeMethod(ObjectHelper.java:828)[89:org.apache.camel.camel-core:2.8.0.fuse-01-13]
... 41 more
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira