[
https://issues.apache.org/activemq/browse/CAMEL-653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-653 started by Claus Ibsen.
> 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
> Assignee: Claus Ibsen
> Fix For: 1.4.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.