Vladislav Sokolov created CAMEL-14602:
-----------------------------------------

             Summary: Removed String headers appears in next endpoints
                 Key: CAMEL-14602
                 URL: https://issues.apache.org/jira/browse/CAMEL-14602
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.22.5
            Reporter: Vladislav Sokolov


Hello,

I create this issue because we noticed a strange behaviour with headers in 
apache camel. 
 I say "strange behaviour" because we didn't find anything in documentation 
about it. Maybe it's a normal behaviour, and we would like to see the part of 
documentation which talks about it.
h2. Context

In our project, we have a bean which computes next endpoints and gives them to 
the recipientList. It looks like this :
{code:java}
<routes>
    <route>
       <!-- our logic -->
        <recipientList>
            <method ref="ourBean" method="ourMethod"/>
        </recipientList>
    </route>
</routes>
{code}
In ourMethod(), we manipulate headers(create, modify, remove).
h2. Issue

However, inside ourMethod(), when we remove a header with
{code:java}
 exchange.getIn().removeHeader(headerToRemove){code}
The removed headers appears again in the next route.

 

ourMethod looks like this :
{code:java}
public String ourMethod(Exchange exchange,@Header("ourHeader") String 
headerToRemove) {
   //some logic

    if (!StringUtils.isEmpty(headerToRemove)){
      //some logic
      exchange.getIn().removeHeader(headerToRemove);
    }
}
{code}
So with this code, the header is removed from exchange, but re-appears in the 
next endpoint.

We have a workaround :
{code:java}
public String ourMethod(Exchange exchange,@Header("ourHeader") String 
headerToRemove) {
   //some logic

    if (!StringUtils.isEmpty(headerToRemove)){
      //some logic
      exchange.getIn().setHeader(headerToRemove, "");
    }
}
{code}
Instead of removing it, we set its value to an empty string.
h2. Explanations

We're puzzled, we don't understand if this should be a correct behaviour or 
not. If yes, can you give us some explanations ?

Best Regards,
 Vlad



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to