This is an automated email from the ASF dual-hosted git repository.

tabish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git


The following commit(s) were added to refs/heads/main by this push:
     new 60c3a02  PROTON-2524 Fix intermittent test failure
60c3a02 is described below

commit 60c3a026e3bf9b74168dcf3c6ba05f07ec071f03
Author: Timothy Bish <tabish...@gmail.com>
AuthorDate: Mon Mar 28 14:26:31 2022 -0400

    PROTON-2524 Fix intermittent test failure
    
    Ensure that expected async processing from last call is completed before
    moving onto next operation to prevent test from failing due to frames
    not being in the expect order scripted.
---
 .../qpid/protonj2/client/impl/ReceiverTest.java    | 10 ++++++++++
 .../engine/impl/ProtonIncomingDelivery.java        | 22 +++++++++++++---------
 .../engine/impl/ProtonOutgoingDelivery.java        |  7 +++++++
 3 files changed, 30 insertions(+), 9 deletions(-)

diff --git 
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReceiverTest.java
 
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReceiverTest.java
index feaf692..8f88e35 100644
--- 
a/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReceiverTest.java
+++ 
b/protonj2-client/src/test/java/org/apache/qpid/protonj2/client/impl/ReceiverTest.java
@@ -2690,12 +2690,17 @@ public class ReceiverTest extends 
ImperativeClientTestCase {
           assertNotNull(receiver.receive()); // #2
 
           peer.waitForScriptToComplete();
+          peer.expectAttach().ofSender().respond();
+          peer.expectDetach().respond();
           if (autoAccept)
           {
               peer.expectDisposition().withFirst(2);
           }
           peer.expectFlow().withLinkCredit(3);
 
+          // Ensure that no additional frames from last receive overlap with 
this one
+          connection.openSender("test").openFuture().get().close();
+
           // Now consume message 3 which will trip the replenish barrier and 
the
           // credit should be updated to reflect that we still have 7 queued
           assertNotNull(receiver.receive());  // #3
@@ -2714,12 +2719,17 @@ public class ReceiverTest extends 
ImperativeClientTestCase {
           assertNotNull(receiver.receive()); // #5
 
           peer.waitForScriptToComplete();
+          peer.expectAttach().ofSender().respond();
+          peer.expectDetach().respond();
           if (autoAccept)
           {
               peer.expectDisposition().withFirst(5);
           }
           peer.expectFlow().withLinkCredit(6);
 
+          // Ensure that no additional frames from last receive overlap with 
this one
+          connection.openSender("test").openFuture().get().close();
+
           // Consume number 6 which means we only have 4 outstanding plus the 
three
           // that we sent last time we flowed which is 70% of possible 
prefetch so
           // we should flow to top off credit which would be 6 since we have 
four
diff --git 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonIncomingDelivery.java
 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonIncomingDelivery.java
index 89d0d40..e3e63e2 100644
--- 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonIncomingDelivery.java
+++ 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonIncomingDelivery.java
@@ -57,12 +57,9 @@ public class ProtonIncomingDelivery implements 
IncomingDelivery {
     private EventHandler<IncomingDelivery> deliveryUpdatedEventHandler = null;
 
     /**
-     * @param link
-     *      The link that this delivery is associated with
-     * @param deliveryId
-     *      The Delivery Id that is assigned to this delivery.
-     * @param deliveryTag
-     *      The delivery tag assigned to this delivery
+     * @param link        The link that this delivery is associated with
+     * @param deliveryId  The Delivery Id that is assigned to this delivery.
+     * @param deliveryTag The delivery tag assigned to this delivery
      */
     public ProtonIncomingDelivery(ProtonReceiver link, long deliveryId, 
DeliveryTag deliveryTag) {
         this.deliveryId = deliveryId;
@@ -180,7 +177,7 @@ public class ProtonIncomingDelivery implements 
IncomingDelivery {
         return disposition(localState, true);
     }
 
-    //----- Payload access
+    // ----- Payload access
 
     @Override
     public int available() {
@@ -259,7 +256,7 @@ public class ProtonIncomingDelivery implements 
IncomingDelivery {
         return this;
     }
 
-    //----- Incoming Delivery event handlers
+    // ----- Incoming Delivery event handlers
 
     @Override
     public ProtonIncomingDelivery 
deliveryReadHandler(EventHandler<IncomingDelivery> handler) {
@@ -291,7 +288,7 @@ public class ProtonIncomingDelivery implements 
IncomingDelivery {
         return deliveryUpdatedEventHandler;
     }
 
-    //----- Internal methods to manage the Delivery
+    // ----- Internal methods to manage the Delivery
 
     @Override
     public int getTransferCount() {
@@ -365,4 +362,11 @@ public class ProtonIncomingDelivery implements 
IncomingDelivery {
 
         return this;
     }
+
+    @Override
+    public String toString() {
+        return "ProtonIncomingDelivery { " +
+                    "deliveryId = " + deliveryId + ", " +
+                    "deliveryTag = " + deliveryTag + " };";
+    }
 }
diff --git 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonOutgoingDelivery.java
 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonOutgoingDelivery.java
index 19e1548..b550504 100644
--- 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonOutgoingDelivery.java
+++ 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonOutgoingDelivery.java
@@ -258,6 +258,13 @@ public class ProtonOutgoingDelivery implements 
OutgoingDelivery {
         return deliveryUpdatedEventHandler;
     }
 
+    @Override
+    public String toString() {
+        return "ProtonOutgoingDelivery { " +
+                "deliveryId = " + deliveryId + ", " +
+                "deliveryTag = " + deliveryTag + " };";
+    }
+
     //----- Internal methods meant only for use by Proton resources
 
     private void tryRetireDeliveryTag() {

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to