[ https://issues.apache.org/jira/browse/ARTEMIS-2437?focusedWorklogId=294529&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294529 ]
ASF GitHub Bot logged work on ARTEMIS-2437: ------------------------------------------- Author: ASF GitHub Bot Created on: 14/Aug/19 07:02 Start Date: 14/Aug/19 07:02 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2795: ARTEMIS-2437 Allow extended types in annotations in AMQP to Core URL: https://github.com/apache/activemq-artemis/pull/2795#issuecomment-521123570 So i checked, the bridging code (e.g. intra cluster etc) encodes the message natively then embeds inside a core, as such the original message is fully preserved as is. This just then leaves two issue areas: 1) Large Messages 2) Conversion to Core Currently core doesn't support complex types, as such i think its wrong to leach AMQP encoding into core, as people could start relying on that. Either we should support complex types in core properly or we don't support and those are dropped. Reason for this is what occurs when other protocols support complex types we will be left with a legacy of AMQP encoded inside core. Re large messages this just sounds like we simply aren't fully supporting AMQP large messages there are a number of issues i understand in this area, thus why Clebert wanted to make Native large message support a blocker ticket for 2.8 (shame this didnt happen), this is known, either we need to support them or we don't. As such i see a few better options here: 1) Support Large Messages for AMQP fully 2) Support complex types in CORE 3) Support 1 & 2 Im against having a solution that leaks AMQP encoding into CORE. just as much as i know we dont like to modify AMQP in transit. I think this should be a no go area. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 294529) Time Spent: 1h 10m (was: 1h) > 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 > Time Spent: 1h 10m > Remaining Estimate: 0h > > {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)