tabish121 commented on code in PR #4840: URL: https://github.com/apache/activemq-artemis/pull/4840#discussion_r1513206030
########## artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPLargeMessageWriter.java: ########## @@ -81,33 +84,54 @@ public boolean isWriting() { public void close() { if (!closed) { try { + try { + if (largeBodyReader != null) { + largeBodyReader.close(); + } + } catch (Exception e) { + // if we get an error only at this point, there's nothing else we could do other than log.warn + logger.warn("{}", e.getMessage(), e); + } if (message != null) { message.usageDown(); } } finally { - reset(true); + resetClosed(); } } } @Override - public AMQPLargeMessageWriter open() { - if (!closed) { - throw new IllegalStateException("Trying to open an AMQP Large Message writer that was not closed"); + public AMQPLargeMessageWriter open(MessageReference reference) { + this.reference = reference; + this.message = (AMQPLargeMessage) reference.getMessage(); Review Comment: This is storing the message which means a call to close() will call usageDown on the reference but the way the code is now structured there isn't a 100% certainly that usageUp will always be called on the reference. It needs to be called here likely so that a close will indeed not accidentally lower usage when it hadn't been increased. -- 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