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

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical 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

      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
      

            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

              Created:
              Updated:
              Resolved:

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