activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Barrow (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMQ-3975) JNDI lookup for dynamic queues or topics containing slash character: wrong queue or topic returned
Date Tue, 14 Aug 2012 20:37:38 GMT

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

Christopher Barrow updated AMQ-3975:
------------------------------------

    Description: 
If a JNDI lookup is done for a dynamic or topic called "a" then another lookup is done for
"a/b", then the second lookup returns a Queue with the same name as the first (i.e. "a").
Example:
# Object q1 = context.lookup("dynamicQueues/a");
  This correctly returns a Queue object with name "a".
# Object q2 = context.lookup("dynamicQueues/a/b");
  This incorrectly returns a Queue object with name "a".

To reproduce:
# drop attached file JNDILookup.java into $ACTIVEMQ_HOME/example/src
# edit build.xml in the example directory to add the following:
{quote}
    <target name="jndi" depends="compile" description="Runs JDNI testcase">
        <echo>Running a Log4j JMS Appender example</echo>
        <java classname="JNDILookup" fork="yes" maxmemory="100M">
            <classpath refid="javac.classpath" />
        </java>
    </target>
{quote}
# run by issuing the command "ant jndi". 
# Observe that the output is as follows:
{quote}
jndi:
     [echo] Running JNDI testcases
     [java] wrongObjectTypeFound: ERROR q2 is not a queue, q2=org.apache.activemq.jndi.ReadOnlyContext@7ddf5a8f
     [java] wrongDestinationFound: ERROR q2 has unexpected name a, expected a/b
{quote}
The message starting "wrongDestinationFound:" demonstrates the problem.

Note that this issue is related to AMQ-3974 and uses the same test class.

  was:
If a JNDI lookup is done for a dynamic or topic called "a/b" then another lookup is done for
"a", then the second lookup returns an instance of org.apache.activemq.jndi.ReadOnlyContext
instead of a Queue. Example:
# Object q1 = context.lookup("dynamicQueues/a/b");
  This correctly returns a Queue object
# Object q2 = context.lookup("dynamicQueues/a");
  This incorrectly returns a ReadOnlyContext object instead of a Queue.

To reproduce:
# drop attached file JNDILookup.java into $ACTIVEMQ_HOME/example/src
# edit build.xml in the example directory to add the following:
{quote}
    <target name="jndi" depends="compile" description="Runs JDNI testcase">
        <echo>Running a Log4j JMS Appender example</echo>
        <java classname="JNDILookup" fork="yes" maxmemory="100M">
            <classpath refid="javac.classpath" />
        </java>
    </target>
{quote}
# run by issuing the command "ant jndi". 
# Observce that the output is as follows:
{quote}
jndi:
     [echo] Running JNDI testcases
     [java] wrongObjectTypeFound: ERROR q2 is not a queue, q2=org.apache.activemq.jndi.ReadOnlyContext@7ddf5a8f
     [java] wrongDestinationFound: ERROR q2 has unexpected name a, expected a/b
{quote}
The message starting "wrongObjectTypeFound:" demonstrates the problem.

        Summary: JNDI lookup for dynamic queues or topics containing slash character: wrong
queue or topic returned  (was: CLONE - JNDI lookup for dynamic queues or topics containing
slash character: wrong queue or topic returned)
    
> JNDI lookup for dynamic queues or topics containing slash character: wrong queue or topic
returned
> --------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3975
>                 URL: https://issues.apache.org/jira/browse/AMQ-3975
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.5.1
>         Environment: Windows7, ActiveMQ 5.5.1
>            Reporter: Christopher Barrow
>            Priority: Minor
>
> If a JNDI lookup is done for a dynamic or topic called "a" then another lookup is done
for "a/b", then the second lookup returns a Queue with the same name as the first (i.e. "a").
Example:
> # Object q1 = context.lookup("dynamicQueues/a");
>   This correctly returns a Queue object with name "a".
> # Object q2 = context.lookup("dynamicQueues/a/b");
>   This incorrectly returns a Queue object with name "a".
> To reproduce:
> # drop attached file JNDILookup.java into $ACTIVEMQ_HOME/example/src
> # edit build.xml in the example directory to add the following:
> {quote}
>     <target name="jndi" depends="compile" description="Runs JDNI testcase">
>         <echo>Running a Log4j JMS Appender example</echo>
>         <java classname="JNDILookup" fork="yes" maxmemory="100M">
>             <classpath refid="javac.classpath" />
>         </java>
>     </target>
> {quote}
> # run by issuing the command "ant jndi". 
> # Observe that the output is as follows:
> {quote}
> jndi:
>      [echo] Running JNDI testcases
>      [java] wrongObjectTypeFound: ERROR q2 is not a queue, q2=org.apache.activemq.jndi.ReadOnlyContext@7ddf5a8f
>      [java] wrongDestinationFound: ERROR q2 has unexpected name a, expected a/b
> {quote}
> The message starting "wrongDestinationFound:" demonstrates the problem.
> Note that this issue is related to AMQ-3974 and uses the same test class.

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