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

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Critical
    • None
    • AMQ 7.1.0.GA
    • broker-core
    • Release Notes
    • +
    • 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.
    • Documented as Resolved Issue
    • 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()
    • AMQ Broker 1833, AMQ Broker 1836

    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
      

      Attachments

        Issue Links

          Activity

            People

              rh-ee-ataylor Andy Taylor
              rhn-support-hfuruich Hisao Furuichi
              Sean Davey Sean Davey (Inactive)
              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