[ 
https://issues.apache.org/jira/browse/CAMEL-12575?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Ribble updated CAMEL-12575:
---------------------------------
    Description: 
This commit  
[https://github.com/apache/camel/commit/e4ad40f2eebb68cfde175b171538e26b278f63f6]
 modified DefaultCxfRsBinding.populateCxfRsResponseFromExchange in a way that 
causes an NPE on line #116 when a GET request is made with the Content-Type 
header set. Since Camel copies the request headers into the response, this 
causes the check for Content-Type to find the header and the code after that 
assumes that cxfExchange.getOutMessage() is non-null.

I can work around this by asking clients not to send the Content-Type header 
(which is generally meaningless for a GET), but I cannot force them not to send 
it. I think I can also add header filtering before the endpoint is executed to 
strip the Content-Type header for GET requests, but ideally 
DefaultCxfRsBinding.populateCxfRsResponseFromExchange would not call 
cxfExchange.getOutMessage().putIfAbsent if getOutMessage returns null.

  was:
This commit  
[https://github.com/apache/camel/commit/e4ad40f2eebb68cfde175b171538e26b278f63f6]
 modified DefaultCxfRsBinding.populateCxfRsResponseFromExchange in a way that 
causes an NPE on line #116 when a GET request is made with the Content-Type 
header set (which is copied into the response).

I can work around this by asking clients not to send the Content-Type header 
(which is generally meaningless for a GET) and/or by adding header filtering 
before the endpoint is executed, but ideally this code would not call 
cxfExchange.getOutMessage().putIfAbsent if getOutMessage returns null so that 
the NPE would not be triggered.


> camel-cxfrs: NPE on GET request with Content-Type header
> --------------------------------------------------------
>
>                 Key: CAMEL-12575
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12575
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-cxfrs
>    Affects Versions: 2.21.1
>            Reporter: Chris Ribble
>            Priority: Major
>
> This commit  
> [https://github.com/apache/camel/commit/e4ad40f2eebb68cfde175b171538e26b278f63f6]
>  modified DefaultCxfRsBinding.populateCxfRsResponseFromExchange in a way that 
> causes an NPE on line #116 when a GET request is made with the Content-Type 
> header set. Since Camel copies the request headers into the response, this 
> causes the check for Content-Type to find the header and the code after that 
> assumes that cxfExchange.getOutMessage() is non-null.
> I can work around this by asking clients not to send the Content-Type header 
> (which is generally meaningless for a GET), but I cannot force them not to 
> send it. I think I can also add header filtering before the endpoint is 
> executed to strip the Content-Type header for GET requests, but ideally 
> DefaultCxfRsBinding.populateCxfRsResponseFromExchange would not call 
> cxfExchange.getOutMessage().putIfAbsent if getOutMessage returns null.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to