Jiri Daněk created ARTEMIS-1859:
-----------------------------------

             Summary: Broker ignores the x-opt-jms-dest message annotation when 
autocreating destinations
                 Key: ARTEMIS-1859
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1859
             Project: ActiveMQ Artemis
          Issue Type: Bug
          Components: AMQP
    Affects Versions: 2.5.1
            Reporter: Jiri Daněk


Consider the reproducer in the attached PR. Previously, only topic autocreation 
was attempted in these integration tests. When _queue_ is to be autocreated 
this way, the broker would still autocreate a topic, and so the new queue 
autocreation test fails.

It would seem that the broker is ignoring the "x-opt-jms-dest" message 
annotation, which qpid-jms correctly sets to 0x0 (a queue).

There is opportunity for one more test to be written. What would happen if I 
try to send a message intended to a topic on a message producer which is 
producing to a queue (of the same name). There should be some error thrown, I 
guess.

CC [~gemmellr], [~tabish121]

The error from {{testAnonymousProducerWithQueueAutoCreation}} is

{noformat}
[org.apache.commons.beanutils.converters.ArrayConverter] :     No conversion 
required, value is already a java.net.URL[]
[main] 11:08:21,877 INFO  [org.apache.activemq.artemis.core.server] AMQ221000: 
live Message Broker is starting with configuration Broker Configuration 
(clustered=false,journalDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/journal0-L5672,bindingsDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/bindings0-L5672,largeMessagesDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/large-msg0-L,pagingDirectory=/home/jdanek/Work/repos/activemq-artemis/tests/integration-tests/./target/tmp/junit2516012081350811450/page0-L5672)
[main] 11:08:21,945 INFO  [org.apache.activemq.artemis.core.server] AMQ221013: 
Using NIO Journal
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in 
[jar:file:/home/jdanek/.m2/repository/org/apache/karaf/org.apache.karaf.client/4.0.6/org.apache.karaf.client-4.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in 
[jar:file:/home/jdanek/.m2/repository/org/ops4j/pax/logging/pax-logging-api/1.8.5/pax-logging-api-1.8.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in 
[jar:file:/home/jdanek/.m2/repository/org/slf4j/slf4j-log4j12/1.7.21/slf4j-log4j12-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
[main] 11:08:22,270 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: 
Protocol module found: [artemis-server]. Adding protocol support for: CORE
[main] 11:08:22,271 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: 
Protocol module found: [artemis-amqp-protocol]. Adding protocol support for: 
AMQP
[main] 11:08:22,271 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: 
Protocol module found: [artemis-stomp-protocol]. Adding protocol support for: 
STOMP
[main] 11:08:22,272 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: 
Protocol module found: [artemis-openwire-protocol]. Adding protocol support 
for: OPENWIRE
[main] 11:08:22,272 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: 
Protocol module found: [artemis-hornetq-protocol]. Adding protocol support for: 
HORNETQ
[main] 11:08:22,273 INFO  [org.apache.activemq.artemis.core.server] AMQ221043: 
Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for: 
MQTT
[main] 11:08:22,425 INFO  [org.apache.activemq.artemis.core.server] AMQ221034: 
Waiting indefinitely to obtain live lock
[main] 11:08:22,425 INFO  [org.apache.activemq.artemis.core.server] AMQ221035: 
Live Server Obtained live lock
[org.apache.commons.beanutils.BeanUtils] : 
BeanUtils.populate(org.apache.activemq.artemis.protocol.amqp.broker.ProtonProtocolManager@38c5cc4c,
 {anycastPrefix=anycast://, multicastPrefix=multicast://})
[org.apache.commons.beanutils.ConvertUtils] : Convert string 'anycast://' to 
class 'java.lang.String'
[org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' 
value 'anycast://' to type 'String'
[org.apache.commons.beanutils.ConvertUtils] : Convert string 'multicast://' to 
class 'java.lang.String'
[org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' 
value 'multicast://' to type 'String'
[org.apache.commons.beanutils.BeanUtils] : 
BeanUtils.populate(org.apache.activemq.artemis.core.protocol.openwire.OpenWireProtocolManager@76508ed1,
 {anycastPrefix=anycast://, multicastPrefix=multicast://})
[org.apache.commons.beanutils.ConvertUtils] : Convert string 'anycast://' to 
class 'java.lang.String'
[org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' 
value 'anycast://' to type 'String'
[org.apache.commons.beanutils.ConvertUtils] : Convert string 'multicast://' to 
class 'java.lang.String'
[org.apache.commons.beanutils.converters.StringConverter] : Converting 'String' 
value 'multicast://' to type 'String'
[main] 11:08:23,166 ERROR [org.apache.activemq.artemis.core.server] AMQ224000: 
Failure in initialisation: io.netty.channel.unix.Errors$NativeIoException: 
bind(..) failed: Address already in use
        at io.netty.channel.unix.Errors.newIOException(Errors.java:122) 
[netty-transport-native-unix-common-4.1.24.Final.jar:4.1.24.Final]
        at io.netty.channel.unix.Socket.bind(Socket.java:287) 
[netty-transport-native-unix-common-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.channel.epoll.AbstractEpollChannel.doBind(AbstractEpollChannel.java:688)
 [netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar:4.1.24.Final]
        at 
io.netty.channel.epoll.EpollServerSocketChannel.doBind(EpollServerSocketChannel.java:70)
 [netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar:4.1.24.Final]
        at 
io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558) 
[netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1358)
 [netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501)
 [netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486)
 [netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:1019) 
[netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254) 
[netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:366) 
[netty-transport-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
 [netty-common-4.1.24.Final.jar:4.1.24.Final]
        at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
 [netty-common-4.1.24.Final.jar:4.1.24.Final]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309) 
[netty-transport-native-epoll-4.1.24.Final-linux-x86_64.jar:4.1.24.Final]
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
 [netty-common-4.1.24.Final.jar:4.1.24.Final]
        at 
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
 [:]

[main] 11:08:23,167 INFO  [org.apache.activemq.artemis.core.server] AMQ221001: 
Apache ActiveMQ Artemis Message Broker version 2.6.0-SNAPSHOT [localhost, 
nodeID=da78638f-54fa-11e8-9211-228524672ac6] 
[main] 11:08:23,980 INFO  [org.apache.activemq.artemis.core.server] AMQ221002: 
Apache ActiveMQ Artemis Message Broker version 2.6.0-SNAPSHOT 
[da78638f-54fa-11e8-9211-228524672ac6] stopped, uptime 2.141 seconds
[main] 11:08:24,238 INFO  [org.apache.activemq.artemis.core.server] **** end 
#test testAnonymousQueueProducerWithAutoCreation() ***

javax.jms.JMSException: Address 979f219c-11a4-4f94-ab6c-f2a930825b64 is not 
configured for queue support [condition = amqp:illegal-state]

        at 
org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToException(AmqpSupport.java:164)
        at 
org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToException(AmqpSupport.java:117)
        at 
org.apache.qpid.jms.provider.amqp.builders.AmqpResourceBuilder.handleClosed(AmqpResourceBuilder.java:185)
        at 
org.apache.qpid.jms.provider.amqp.builders.AmqpResourceBuilder.processRemoteClose(AmqpResourceBuilder.java:129)
        at 
org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:995)
        at 
org.apache.qpid.jms.provider.amqp.AmqpProvider.access$1900(AmqpProvider.java:105)
        at 
org.apache.qpid.jms.provider.amqp.AmqpProvider$17.run(AmqpProvider.java:854)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)


Process finished with exit code 255
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to