Jiri Danek created ARTEMIS-1338:
-----------------------------------

             Summary: JMS test AmqpMessageRoutingTest#testRoutingExclusivity 
fails with the OpenWire protocol (activemq-client library)
                 Key: ARTEMIS-1338
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1338
             Project: ActiveMQ Artemis
          Issue Type: Test
          Components: Broker, OpenWire
    Affects Versions: 2.3.0
            Reporter: Jiri Danek
            Priority: Minor


OpenWire client is unable to connect if {{<auto-create-addresses>false</...>}} 
is set.

Consider the test 
{{org.apache.activemq.artemis.tests.integration.amqp.AmqpMessageRoutingTest#testRoutingExclusivity}}
 adapted to work with multiple JMS connection factories.

Or, to reproduce manually

Set {{<auto-create-addresses>false</...>}} in {{broker.xml}} under 
{{<address-setting match="#">}}. Then connect with some OpenWire client.

{noformat}
14:00:09,048 ERROR Error while creating session! 
org.apache.activemq.artemis.api.core.ActiveMQAddressDoesNotExistException: 
AMQ119203: Address Does Not Exist: ActiveMQ.Advisory.TempQueue
javax.jms.JMSException: 
org.apache.activemq.artemis.api.core.ActiveMQAddressDoesNotExistException: 
AMQ119203: Address Does Not Exist: ActiveMQ.Advisory.TempQueue
        at 
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:54)
        at 
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1396)
        at 
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1423)
        at org.apache.activemq.AdvisoryConsumer.<init>(AdvisoryConsumer.java:51)
        at 
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1482)
        at 
org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:325)
        at com.redhat.mqe.lib.CoreClient.createSession(CoreClient.java:118)
        at com.redhat.mqe.lib.SenderClient.startClient(SenderClient.java:92)
        at com.redhat.mqe.lib.Main.main(Main.java:49)
        at com.redhat.mqe.aoc.Main.main(Main.java:27)
Caused by: java.lang.Throwable: 
org.apache.activemq.artemis.api.core.ActiveMQAddressDoesNotExistException: 
AMQ119203: Address Does Not Exist: ActiveMQ.Advisory.TempQueue
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:2499)
        at 
org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:1567)
        at 
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:547)
        at 
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:521)
        at 
org.apache.activemq.artemis.core.protocol.openwire.amq.AMQConsumer.createTopicSubscription(AMQConsumer.java:182)
        at 
org.apache.activemq.artemis.core.protocol.openwire.amq.AMQConsumer.init(AMQConsumer.java:109)
        at 
org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.createConsumer(AMQSession.java:166)
        at 
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.addConsumer(OpenWireConnection.java:786)
        at 
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processAddConsumer(OpenWireConnection.java:1047)
        at org.apache.activemq.command.ConsumerInfo.visit(ConsumerInfo.java:351)
        at 
org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:271)
        at 
org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:628)
        at 
org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:69)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350)
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:350)
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:372)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:358)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
        at 
io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:972)
        at 
io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:386)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:302)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873)
        at java.lang.Thread.run(Thread.java:785)
{noformat}

I believe a reasonable fix is a change to default configuration (to make sure 
these addresses do still exist even if user changes the config, the way 
{{<address-setting match="activemq.management#">}} is handled now.)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to