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

Reply via email to