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

Claus Ibsen updated CAMEL-653:
------------------------------

        Fix Version/s: 1.5.0
    Affects Version/s: 1.4.0

Also affected by 1.4.

Target for 1.5 to address this. We could for being backwards compatible add two 
headers
- the original long name with package name with dots
- without packagename

And let the bean component look for the header in the two keys?

Later we could use the ExchangeProperty feature where we have a mean to address 
more generally the dot problem with JMS destinations.

Bruce are you in a desperate need for a fix? Or can you wait for 1.5?

> Bean method lost when sending a message from one JMS queue to another
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-653
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-653
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-jms
>    Affects Versions: 1.3.0, 1.4.0
>         Environment: Windows XP, ActiveMQ
>            Reporter: Bruce Elmore
>             Fix For: 1.5.0
>
>
> I noticed a problem in JmsBinding.java. If Camel has read a JMS message from 
> a queue and that message has a bean method specified in the header 
> ("org.apache.camel.MethodName"), the method header will removed if that 
> message is written to another queue. Here's the offending code: 
>     protected boolean shouldOutputHeader(org.apache.camel.Message 
> camelMessage, String headerName, 
>                                          Object headerValue) { 
>         return headerValue != null && 
> !getIgnoreJmsHeaders().contains(headerName) 
>                && ObjectHelper.isJavaIdentifier(headerName); 
>     } 
> "org.apache.camel.MethodName" fails the check isJavaIdentifier and is 
> excluded from the headers written to the new message. I'm not sure the 
> purpose of this check, but this might be an unintended side effect. 
> The call chain is something like this: 
> JmsProducer.process 
> JmsBinding.makeJmsMessage 
> JmsBinding.appendJmsProperties 
> JmsBinding.shouldOutputHeader 
> Update: Experimenting later with WebLogic's JMS, I noticed that WebLogic 
> (9.2) does not allow this header name. Maybe this was the original motivation 
> for this check. In order to be compatible with WebLogic, perhaps the method 
> header name should changed to something like "CamelMethod". I believe this 
> would correct both problems.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to