tabish121 commented on code in PR #4840: URL: https://github.com/apache/activemq-artemis/pull/4840#discussion_r1514696844
########## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/ProtonAbstractReceiver.java: ########## @@ -320,28 +325,45 @@ public final void onMessage(Delivery delivery) throws ActiveMQAMQPException { return; } - final Message message = messageReader.readBytes(delivery); + { + Message completeMessage; + if ((completeMessage = messageReader.readBytes(delivery)) != null) { + // notice the AMQP Large Message Reader will always return false + // and call the onMessageComplete directly + // since that happens asynchronously + onMessageComplete(delivery, completeMessage, messageReader.getDeliveryAnnotations()); + } + } + } catch (Exception e) { + logger.warn(e.getMessage(), e); + throw new ActiveMQAMQPInternalErrorException(e.getMessage(), e); + } + } - if (message != null) { - // Fetch this before the close of the reader as that will clear any read message - // delivery annotations. - final DeliveryAnnotations deliveryAnnotations = messageReader.getDeliveryAnnotations(); + public void onMessageComplete(Delivery delivery, + Message message, DeliveryAnnotations deliveryAnnotations) { + connection.requireInHandler(); - this.messageReader.close(); - this.messageReader = null; + try { + final Receiver receiver = ((Receiver) delivery.getLink()); Review Comment: I realized it afterwards, it isn't really needed as it shouldn't ever be a receiver that isn't the one we have tracked but guess its fine either way, removing unneeded code is usually a nice thing. -- 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. To unsubscribe, e-mail: gitbox-unsubscr...@activemq.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org