Uploaded image for project: 'A-MQ Broker'
  1. A-MQ Broker
  2. ENTMQBR-1184

LargeMessage Produced by AMQP Protocol Can Not Be Consumed By AMQP Protocol

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: AMQ 7.1.0.GA
    • Fix Version/s: None
    • Component/s: broker-core
    • Labels:
    • Environment:
      • AMQ Broker 7.1.GA
      • qpid-jms-client 0.26.0
    • Target Release:
    • Sprint:
      AMQ Broker 1833, AMQ Broker 1836
    • Steps to Reproduce:
      Hide
      • create a broker

        ./bin/artemis create test --user=admin --password=admin --allow-anonymous
        

      • start a broker

        - ./test/bin/artemis run
        

      • Download a attached JBDS project and execute sample.Main.main()
      Show
      create a broker ./bin/artemis create test --user=admin --password=admin --allow-anonymous start a broker - ./test/bin/artemis run Download a attached JBDS project and execute sample.Main.main()
    • Affects:
      Release Notes
    • Release Notes Text:
      Hide
      In previous releases, if the size of an AMQP JMS Object Message was greater than the value specified for the maximum journal record size, an exception was thrown on the broker and the consumer was not able to receive the message. This issue was caused by a problem in the AMQP large message to core message conversion process.
      This issue is fixed and AMQP large messages can be sent and received as usual.
      Show
      In previous releases, if the size of an AMQP JMS Object Message was greater than the value specified for the maximum journal record size, an exception was thrown on the broker and the consumer was not able to receive the message. This issue was caused by a problem in the AMQP large message to core message conversion process. This issue is fixed and AMQP large messages can be sent and received as usual.
    • Release Notes Docs Status:
      Documented as Resolved Issue
    • QE Test Coverage:
      +

      Description

      AMQP Consumer can not consume a message which is stored as a large message sent by using AMQP protocol. The reproducer uses ObjectMessage.

      In the broker, follwoing WARN log will be displayed

      2018-04-03 15:47:51,712 WARN  [org.apache.activemq.artemis.core.server] AMQ222151: removing consumer which did not handle a message, consumer=ServerConsumerImpl [id=0, filter=null, binding=LocalQueueBinding [address=SAMPLE, queue=QueueImpl[name=1.SAMPLE_SUBSCRIBER, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::serverUUID=d41beb21-370a-11e8-8458-54ee7551b10d], temp=false]@79df954c, filter=null, name=1.SAMPLE_SUBSCRIBER, clusterName=1.SAMPLE_SUBSCRIBERd41beb21-370a-11e8-8458-54ee7551b10d]], message=Reference[18]:RELIABLE:LargeServerMessage[messageID=18,durable=true,userID=null,priority=4, timestamp=Tue Apr 03 15:47:51 JST 2018,expiration=0, durable=true, address=SAMPLE,properties=TypedProperties[NATIVE_MESSAGE_ID=ID:9803b0a1-44f2-4276-b5f6-e9b58739483c:1:1:1-1,JMS_AMQP_MA_x-opt-jms-dest=1,JMS_AMQP_ContentType=application/x-java-serialized-object,_AMQ_LARGE_SIZE=2097264,JMS_AMQP_MA_x-opt-jms-msg-type=1]]@1331398936: java.lang.IllegalStateException: Can't deliver message java.lang.NullPointerException
      	at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:599) [artemis-amqp-protocol-2.4.0.amq-710004-redhat-1.jar:]
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1091) [artemis-server-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:460) [artemis-server-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2768) [artemis-server-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2252) [artemis-server-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl.access$1900(QueueImpl.java:106) [artemis-server-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:3041) [artemis-server-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42) [artemis-commons-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31) [artemis-commons-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.utils.actors.ProcessorBase$ExecutorTask.run(ProcessorBase.java:53) [artemis-commons-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_131]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_131]
      	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_131]
      Caused by: java.lang.NullPointerException
      	at org.apache.activemq.artemis.core.message.impl.CoreMessage.internalWritableBuffer(CoreMessage.java:289) [artemis-core-client-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.core.message.impl.CoreMessage.getBodyBuffer(CoreMessage.java:282) [artemis-core-client-2.4.0.amq-710004-redhat-1.jar:2.4.0.amq-710004-redhat-1]
      	at org.apache.activemq.artemis.protocol.amqp.converter.jms.ServerJMSObjectMessage.decode(ServerJMSObjectMessage.java:65) [artemis-amqp-protocol-2.4.0.amq-710004-redhat-1.jar:]
      	at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:114) [artemis-amqp-protocol-2.4.0.amq-710004-redhat-1.jar:]
      	at org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:104) [artemis-amqp-protocol-2.4.0.amq-710004-redhat-1.jar:]
      	at org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverMessage(ProtonServerSenderContext.java:683) [artemis-amqp-protocol-2.4.0.amq-710004-redhat-1.jar:]
      	at org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:590) [artemis-amqp-protocol-2.4.0.amq-710004-redhat-1.jar:]
      	... 12 more
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  ataylor Andy Taylor
                  Reporter:
                  hisao.furuichi hisao furuichi
                  Tester:
                  Sean Davey
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  9 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved:

                    Time Tracking

                    Estimated:
                    Original Estimate - 2 days
                    2d
                    Remaining:
                    Remaining Estimate - 2 days
                    2d
                    Logged:
                    Time Spent - Not Specified
                    Not Specified