activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (Resolved) (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (AMQ-3635) JmsTopicConnector checks for presence of localClientId then uses outboundClientId
Date Tue, 31 Jan 2012 21:57:59 GMT

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

Timothy Bish resolved AMQ-3635.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 5.6.0

fixed in svn rev: 1238827
                
> JmsTopicConnector checks for presence of localClientId then uses outboundClientId
> ---------------------------------------------------------------------------------
>
>                 Key: AMQ-3635
>                 URL: https://issues.apache.org/jira/browse/AMQ-3635
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Connector
>    Affects Versions: 5.4.2
>         Environment: running 5.4.2 on linux.
>            Reporter: Jeff Gillings
>            Assignee: Timothy Bish
>            Priority: Minor
>             Fix For: 5.6.0
>
>
> On the JMS bridge topic connector, if I set the outboundClientId but not the localClientId,
then the outbound client id will not be set.
> This is because the JmsTopicConnector only sets the outboundClientId if the localClientId
is set.  This appears to be a bug.
> Here is 5.4.2 JmsTopicConnector.initializeForeignTopicConnection
> {code}
>     protected void initializeForeignTopicConnection() throws NamingException, JMSException
{
>         if (outboundTopicConnection == null) {
>             // get the connection factories
>             if (outboundTopicConnectionFactory == null) {
>                 // look it up from JNDI
>                 if (outboundTopicConnectionFactoryName != null) {
>                     outboundTopicConnectionFactory = (TopicConnectionFactory)jndiOutboundTemplate
>                         .lookup(outboundTopicConnectionFactoryName, TopicConnectionFactory.class);
>                     if (outboundUsername != null) {
>                         outboundTopicConnection = outboundTopicConnectionFactory
>                             .createTopicConnection(outboundUsername, outboundPassword);
>                     } else {
>                         outboundTopicConnection = outboundTopicConnectionFactory.createTopicConnection();
>                     }
>                 } else {
>                     throw new JMSException("Cannot create localConnection - no information");
>                 }
>             } else {
>                 if (outboundUsername != null) {
>                     outboundTopicConnection = outboundTopicConnectionFactory
>                         .createTopicConnection(outboundUsername, outboundPassword);
>                 } else {
>                     outboundTopicConnection = outboundTopicConnectionFactory.createTopicConnection();
>                 }
>             }
>         }
> >>>>    if (localClientId != null && localClientId.length() >
0) {           // CHECKS for existence of localClientId
>             outboundTopicConnection.setClientID(getOutboundClientId());      // THEN
uses outboundClientId
>         }
>         outboundTopicConnection.start();
>     }
> {code}
> I'm thinking the above code should check for existence of outboundClientId instead of
localClientId
> Compare this to:
> {code}
>     protected void initializeLocalTopicConnection() throws NamingException, JMSException
{
>         if (localTopicConnection == null) {
>             // get the connection factories
>             if (localTopicConnectionFactory == null) {
>                 if (embeddedConnectionFactory == null) {
>                     // look it up from JNDI
>                     if (localConnectionFactoryName != null) {
>                         localTopicConnectionFactory = (TopicConnectionFactory)jndiLocalTemplate
>                             .lookup(localConnectionFactoryName, TopicConnectionFactory.class);
>                         if (localUsername != null) {
>                             localTopicConnection = localTopicConnectionFactory
>                                 .createTopicConnection(localUsername, localPassword);
>                         } else {
>                             localTopicConnection = localTopicConnectionFactory.createTopicConnection();
>                         }
>                     } else {
>                         throw new JMSException("Cannot create localConnection - no information");
>                     }
>                 } else {
>                     localTopicConnection = embeddedConnectionFactory.createTopicConnection();
>                 }
>             } else {
>                 if (localUsername != null) {
>                     localTopicConnection = localTopicConnectionFactory.createTopicConnection(localUsername,
>                                                                                     
        localPassword);
>                 } else {
>                     localTopicConnection = localTopicConnectionFactory.createTopicConnection();
>                 }
>             }
>         }
> >>>>        if (localClientId != null && localClientId.length() >
0) {    // CHECKS for existence of localClientId
>             localTopicConnection.setClientID(getLocalClientId());         // THEN uses
localClientId
>         }
>         localTopicConnection.start();
>     }
> {code}

--
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

        

Mime
View raw message