Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Critical
-
Resolution: Unresolved
-
Affects Version/s: 3.3 RC4
-
Fix Version/s: None
-
Component/s: Transport: JMS
-
Labels:None
-
Environment:
activemq embedded server
-
User impact:Very High
-
Similar Issues:None
Description
When calling a request-reply jms:outbound-endpoint (let's call it queue B) inside a flow invoked from a request-reply jms:outbound-endpoint (let's call it queue A) from other flow, the reply is placed on the temp queue of the caller (queue A) instead of queue B.
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:jms="http://www.mulesoft.org/schema/mule/jms" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="EE-3.3.0" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd ">
<jms:activemq-connector name="Active_MQ" specification="1.1" brokerURL="vm://localhost" validateConnections="true" numberOfConsumers="10" doc:name="Active_MQ"/>
<flow name="jmsissueFlow1" doc:name="jmsissueFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" doc:name="HTTP"/>
<jms:outbound-endpoint exchange-pattern="request-response" queue="a" connector-ref="Active_MQ" doc:name="a"/>
<logger message="AT FLOW1: #[payload.toString()]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="jmsissueFlow2" doc:name="jmsissueFlow2">
<jms:inbound-endpoint exchange-pattern="request-response" queue="a" connector-ref="Active_MQ" doc:name="a"/>
<logger message="At flow2: #[payload.toString()]" level="INFO" doc:name="Logger"/>
<jms:outbound-endpoint exchange-pattern="request-response" queue="b" connector-ref="Active_MQ" doc:name="b"/>
<logger message="after jms: #[payload.toString()]" level="INFO" doc:name="Logger"/>
<expression-transformer expression="'CORRECT VALUE'" doc:name="Expression"/>
<logger message="after expression: #[payload.toString()]" level="INFO" doc:name="Logger"/>
</flow>
<flow name="jmsissueFlow3" doc:name="jmsissueFlow3">
<jms:inbound-endpoint exchange-pattern="request-response" queue="b" connector-ref="Active_MQ" doc:name="b"/>
<expression-transformer expression="'WRONG VALUE'" doc:name="Expression"/>
</flow>
</mule>
The output is "WRONG VALUE" when it should be "CORRECT VALUE".
Example project