Details
Description
There is an issue with CxfPayloadConverter that can lead to a failure in converting the CxfPayload into something which is actually convertible.
This problem happens when you try to convert a CxfPayload instance that has an empty body list into a Node instance. This returns null and subsequently registers this type mapping key (CxfPayload->Node) in org.apache.camel.impl.converter.BaseTypeConverterRegistry's conversion-misses table. Because of this, a subsequent conversion using a CxfPayload instance with an non empty body list will permanently fail.
I am attaching a modified CxfPayloadConversionTest that includes testCxfPayloadToNode that illustrates this problem. Currently, the last assertion of this test is failing when this issue is present.
I think we can fix this problem by returning Void.TYPE instead of a null for this case.
In this way, the conversion is regarded as a success and there will be no entry in the conversion-misses table.
So, I am also attaching the modiefied CxfPayloadConverter class that can handle this test case.