Github user gemmellr commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/2187#discussion_r221189768
  
    --- Diff: 
artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/client/SendAcknowledgementHandler.java
 ---
    @@ -41,4 +41,13 @@
         * @param message message sent asynchronously
         */
        void sendAcknowledged(Message message);
    +
    +   default void sendFailed(Message message, Exception e) {
    +      /**
    +       * By default ignore failures to preserve compatibility with 
existing implementations.
    +       * If the message makes it to the broker and a failure occurs 
sendAcknowledge() will
    --- End diff --
    
    Is this actually true? From skimming the diff it seems like it may not be 
as there are some if-else sections added that call one of the handler methods 
only. Unless somewhere else is also calling the sendAcknowledged method 
(possibly in duplicate?) then it seems if only the failure method gets called, 
and this default method drops it, that would mean an existing listener that 
doesn't implement sendFailed then wont see anything at all now. IF that is the 
case it suggests some tests are missing.
    
    Should this default method impl perhaps be calling sendAcknowledged()? 
(uglier alternative, the calling code could check the sendFailed method is 
actually implemented and decide which to call)


---

Reply via email to