Details
-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 2.20.1
-
Component/s: camel-core
-
Labels:None
-
Estimated Complexity:Unknown
Description
I try to upgrade from camel 2.19.3 to camel 2.20.1 and the behavior of org.apache.camel.ProducerTemplate.requestBody(String, Object, Class<T>) seems to be broken in case of exceptions.
From the API the exception behavior is documented as "CamelExecutionException if the processing of the exchange failed"
--> in camel 2.19 it works without any issues
--> since camel 2.20.1 the underlying exception is lost and instead a InvalidPayloadException is thrown.
A first analyze looks like the internal camel processing in 2.20 try to convert the exchange in body to the given response type. But i don't think this is make sense in case of a exception. Using the requestBody without the response type work correctly - here the unterlying exception is correctly propagated back as a wrapped CamelExecutionException.
I was not able to find the root cause, so I could not provide a patch here - but I have attached a junit test to reproduce the issue.