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

Christopher Barrow updated AMQ-3543:
------------------------------------

    Description: 
The reply-to header on a MESSAGE frame resulting from the sending of a message 
(SEND) with the reply-to header set to a temporary topic is in the form 
/temp-topic/<local-temp-topic-name> rather than the expected 
/remote-temp-topic/<system_generated_name>

This only happens when the same connection is used for sending and receiving 
messages. When a temporary queue is used, the reply-to appears as 
/remote-temp-queue/xxx as expected. So even if one takes the position that it 
is reasonable for the local name to be used given that everything is on the 
same connection, there is an inconsistency between the topic and queue cases. 
For our purposes we would prefer that the remote form be used always, because 
we are actually servicing two different users on the same connection (first 
user does the SEND, second user receives the MESSAGE).

Test case for the underlying ActiveMQ bug is attached: StompRemoteTempTopic.java

To reproduce, drop this file into $ACTIVEMQ_HOME/example/src, edit build.xml in 
the example
directory to add the following:

<target name="bug" depends="compile" description="Runs test case for replyTo 
TempTopic bug">
<echo>Running a Stomp example</echo>
<java classname="StompRemoteTempTopic" fork="yes" maxmemory="100M">
<classpath refid="javac.classpath" />
<jvmarg value="-server" />
</java>
</target>

and run by issuing the command "ant bug". Output is as follows:

[echo] Running a Stomp example
[java] =====================================================
[java] Test run using temporary topic
[java] -----------------------------------------------------
[java] Sending request message: SEND with 
reply-to=/temp-topic/2C26441740C0ECC9tt1
[java] Received request message: MESSAGE with 
reply-to=/temp-topic/2C26441740C0ECC9tt1
[java] Response MESSAGE received
[java] =====================================================
[java] Test run using temporary queue
[java] -----------------------------------------------------
[java] Sending request message: SEND with 
reply-to=/temp-queue/2C26441740C0ECC9tt1
[java] Received request message: MESSAGE with 
reply-to=/remote-temp-queue/ID:ChrisBarrow-lap-61815-1318539910206-4:6:1
[java] Response MESSAGE received

This makes it easy to see that for the queue case the reply-to is set to the 
remote temporary queue but for the topic case the local temporary topic is 
specified.


  was:
The reply-to header on a MESSAGE frame resulting from the sending of a message 
(SEND) with the reply-to header set to a temporary topic is in the form 
/temp-topic/<local-temp-topic-name> rather than the expected 
/remote-temp-topic/<system_generated_name>

This only happens when the same connection is used for sending and receiving 
messages. When a temporary queue is used, the reply-two appears as 
/remote-temp-queue/xxx as expected. So even if one takes the position that it 
is reasonable for the local name to be used given that everything is on the 
same connection, there is an inconsistency between the topic and queue cases. 
For our purposes we would prefer that the remote form be used always.

Test case for the underlying ActiveMQ bug is attached: StompRemoteTempTopic.java

To reproduce, drop this file into $ACTIVEMQ_HOME/example/src, edit build.xml in 
the example
directory to add the following:

<target name="bug" depends="compile" description="Runs test case for replyTo 
TempTopic bug">
<echo>Running a Stomp example</echo>
<java classname="StompRemoteTempTopic" fork="yes" maxmemory="100M">
<classpath refid="javac.classpath" />
<jvmarg value="-server" />
</java>
</target>

and run by issuing the command "ant bug". Output is as follows:

[echo] Running a Stomp example
[java] =====================================================
[java] Test run using temporary topic
[java] -----------------------------------------------------
[java] Sending request message: SEND with 
reply-to=/temp-topic/2C26441740C0ECC9tt1
[java] Received request message: MESSAGE with 
reply-to=/temp-topic/2C26441740C0ECC9tt1
[java] Response MESSAGE received
[java] =====================================================
[java] Test run using temporary queue
[java] -----------------------------------------------------
[java] Sending request message: SEND with 
reply-to=/temp-queue/2C26441740C0ECC9tt1
[java] Received request message: MESSAGE with 
reply-to=/remote-temp-queue/ID:ChrisBarrow-lap-61815-1318539910206-4:6:1
[java] Response MESSAGE received

This makes it easy to see that for the queue case the reply-to is set to the 
remote temporary queue but for the topic case the local temporary topic is 
specified.


    
> STOMP connector: unexpected reply-to value for remote temporary topic
> ---------------------------------------------------------------------
>
>                 Key: AMQ-3543
>                 URL: https://issues.apache.org/jira/browse/AMQ-3543
>             Project: ActiveMQ
>          Issue Type: Bug
>            Reporter: Christopher Barrow
>            Priority: Minor
>         Attachments: StompRemoteTempTopic.java
>
>
> The reply-to header on a MESSAGE frame resulting from the sending of a 
> message (SEND) with the reply-to header set to a temporary topic is in the 
> form /temp-topic/<local-temp-topic-name> rather than the expected 
> /remote-temp-topic/<system_generated_name>
> This only happens when the same connection is used for sending and receiving 
> messages. When a temporary queue is used, the reply-to appears as 
> /remote-temp-queue/xxx as expected. So even if one takes the position that it 
> is reasonable for the local name to be used given that everything is on the 
> same connection, there is an inconsistency between the topic and queue cases. 
> For our purposes we would prefer that the remote form be used always, because 
> we are actually servicing two different users on the same connection (first 
> user does the SEND, second user receives the MESSAGE).
> Test case for the underlying ActiveMQ bug is attached: 
> StompRemoteTempTopic.java
> To reproduce, drop this file into $ACTIVEMQ_HOME/example/src, edit build.xml 
> in the example
> directory to add the following:
> <target name="bug" depends="compile" description="Runs test case for replyTo 
> TempTopic bug">
> <echo>Running a Stomp example</echo>
> <java classname="StompRemoteTempTopic" fork="yes" maxmemory="100M">
> <classpath refid="javac.classpath" />
> <jvmarg value="-server" />
> </java>
> </target>
> and run by issuing the command "ant bug". Output is as follows:
> [echo] Running a Stomp example
> [java] =====================================================
> [java] Test run using temporary topic
> [java] -----------------------------------------------------
> [java] Sending request message: SEND with 
> reply-to=/temp-topic/2C26441740C0ECC9tt1
> [java] Received request message: MESSAGE with 
> reply-to=/temp-topic/2C26441740C0ECC9tt1
> [java] Response MESSAGE received
> [java] =====================================================
> [java] Test run using temporary queue
> [java] -----------------------------------------------------
> [java] Sending request message: SEND with 
> reply-to=/temp-queue/2C26441740C0ECC9tt1
> [java] Received request message: MESSAGE with 
> reply-to=/remote-temp-queue/ID:ChrisBarrow-lap-61815-1318539910206-4:6:1
> [java] Response MESSAGE received
> This makes it easy to see that for the queue case the reply-to is set to the 
> remote temporary queue but for the topic case the local temporary topic is 
> specified.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to