You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Robbie Gemmell (JIRA)" <ji...@apache.org> on 2019/08/09 09:50:00 UTC

[jira] [Assigned] (ARTEMIS-2437) AMQP message conversion fails if annotations contain values outwith simple property types

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

Robbie Gemmell reassigned ARTEMIS-2437:
---------------------------------------

    Assignee: Timothy Bish
     Summary: AMQP message conversion fails if annotations contain values outwith simple property types  (was: AMQ224046: Exception while browser handled from Reference[627]:NON-RELIABLE:AMQPMessage [...]: java.lang.RuntimeException: class java.util.LinkedHashMap is not a valid property type)

This issue simplifies to simply sending an AMQP message annotation that doesn't fit within the basic JMS style property types and triggering a message conversion. The broker converts the message to Core messages at various points (cross protocol traffic such as here, larger messages, clustering, possibly others) but the conversion fails to handle the possible annotation types, such as a map in this particular case.

> AMQP message conversion fails if annotations contain values outwith simple property types
> -----------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-2437
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2437
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.9.0
>            Reporter: Jiri Daněk
>            Assignee: Timothy Bish
>            Priority: Major
>
> {noformat}
> $ bin/artemis browser --destination example
> Consumer:: filter = null
> Consumer ActiveMQQueue[example], thread=0 trying to browse 1000 messages
> [...]
> Consumer ActiveMQQueue[example], thread=0 browsing Alert!!!
> Consumer ActiveMQQueue[example], thread=0 browsed: 4 messages
> Consumer ActiveMQQueue[example], thread=0 Browser thread finished
> {noformat}
> In fact, there is 5 messages in the queue, and probably when browsing last one, the following error is printed to broker stdout.
> {noformat}
> 2019-07-31 15:07:30,742 ERROR [org.apache.activemq.artemis.core.server] AMQ224046: Exception while browser handled from Reference[627]:NON-RELIABLE:AMQPMessage [durable=false, messageID=627, address=example, size=121, applicationProperties=null, properties=Properties{messageId=null, userId=null, to='null', subject='null', replyTo='null', correlationId=null, contentType=null, contentEncoding=null, absoluteExpiryTime=null, creationTime=null, groupId='null', groupSequence=null, replyToGroupId='null'}, extraProperties = TypedProperties[_AMQ_AD=example]]: java.lang.RuntimeException: class java.util.LinkedHashMap is not a valid property type
>         at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:695) [artemis-amqp-protocol-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback.sendMessage(CoreSessionCallback.java:123) [artemis-server-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1168) [artemis-server-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:510) [artemis-server-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl$BrowserDeliverer.run(ServerConsumerImpl.java:1484) [artemis-server-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66) [artemis-commons-2.9.0.jar:2.9.0]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_212]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_212]
>         at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) [artemis-commons-2.9.0.jar:2.9.0]
> Caused by: org.apache.activemq.artemis.api.core.ActiveMQPropertyConversionException: class java.util.LinkedHashMap is not a valid property type
>         at org.apache.activemq.artemis.utils.collections.TypedProperties.setObjectProperty(TypedProperties.java:1112) [artemis-commons-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.message.impl.CoreMessage.putObjectProperty(CoreMessage.java:1014) [artemis-core-client-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.message.impl.CoreMessage.putObjectProperty(CoreMessage.java:1030) [artemis-core-client-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.core.message.impl.CoreMessage.putObjectProperty(CoreMessage.java:53) [artemis-core-client-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.reader.MessageUtil.setObjectProperty(MessageUtil.java:262) [artemis-core-client-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.protocol.amqp.converter.jms.ServerJMSMessage.setObjectProperty(ServerJMSMessage.java:345) [artemis-amqp-protocol-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.protocol.amqp.converter.AmqpCoreConverter.setProperty(AmqpCoreConverter.java:441) [artemis-amqp-protocol-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.protocol.amqp.converter.AmqpCoreConverter.processMessageAnnotations(AmqpCoreConverter.java:281) [artemis-amqp-protocol-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.protocol.amqp.converter.AmqpCoreConverter.toCore(AmqpCoreConverter.java:202) [artemis-amqp-protocol-2.9.0.jar:2.9.0]
>         at org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:692) [artemis-amqp-protocol-2.9.0.jar:2.9.0]
>         ... 10 more
> {noformat}
> When browsing messages in web console, no messages are displayed for this queue.
> I will add reproducer when I create it.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)