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 72f9347c PROTON-2599 Prevent unneeded allocations for static friendly 
call backs
72f9347c is described below

commit 72f9347cd79107077127f6173b6bbd1322b5a7b4
Author: Timothy Bish <[email protected]>
AuthorDate: Thu Sep 1 17:59:35 2022 -0400

    PROTON-2599 Prevent unneeded allocations for static friendly call backs
---
 .../org/apache/qpid/protonj2/engine/OutgoingAMQPEnvelope.java  |  8 ++++----
 .../qpid/protonj2/engine/impl/ProtonSessionOutgoingWindow.java | 10 ++++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/OutgoingAMQPEnvelope.java
 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/OutgoingAMQPEnvelope.java
index d060ae81..f7ab3a5e 100644
--- 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/OutgoingAMQPEnvelope.java
+++ 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/OutgoingAMQPEnvelope.java
@@ -33,7 +33,7 @@ public class OutgoingAMQPEnvelope extends 
PerformativeEnvelope<Performative> {
 
     private AMQPPerformativeEnvelopePool<OutgoingAMQPEnvelope> pool;
 
-    private Consumer<Performative> payloadToLargeHandler = 
this::defaultPayloadToLargeHandler;
+    private Consumer<Performative> payloadToLargeHandler = 
OutgoingAMQPEnvelope::defaultPayloadToLargeHandler;
     private Runnable frameWriteCompleteHandler;
 
     OutgoingAMQPEnvelope() {
@@ -60,7 +60,7 @@ public class OutgoingAMQPEnvelope extends 
PerformativeEnvelope<Performative> {
         if (payloadToLargeHandler != null) {
             this.payloadToLargeHandler = payloadToLargeHandler;
         } else {
-            this.payloadToLargeHandler = this::defaultPayloadToLargeHandler;
+            this.payloadToLargeHandler = 
OutgoingAMQPEnvelope::defaultPayloadToLargeHandler;
         }
 
         return this;
@@ -118,7 +118,7 @@ public class OutgoingAMQPEnvelope extends 
PerformativeEnvelope<Performative> {
     public final void release() {
         initialize(null, -1, null);
 
-        payloadToLargeHandler = this::defaultPayloadToLargeHandler;
+        payloadToLargeHandler = 
OutgoingAMQPEnvelope::defaultPayloadToLargeHandler;
         frameWriteCompleteHandler = null;
 
         if (pool != null) {
@@ -140,7 +140,7 @@ public class OutgoingAMQPEnvelope extends 
PerformativeEnvelope<Performative> {
         getBody().invoke(handler, getPayload(), getChannel(), context);
     }
 
-    private void defaultPayloadToLargeHandler(Performative performative) {
+    private static void defaultPayloadToLargeHandler(Performative 
performative) {
         throw new IllegalArgumentException(String.format(
             "Cannot transmit performative %s with payload larger than max 
frame size limit", performative));
     }
diff --git 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonSessionOutgoingWindow.java
 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonSessionOutgoingWindow.java
index 8fc58548..b60ef171 100644
--- 
a/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonSessionOutgoingWindow.java
+++ 
b/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonSessionOutgoingWindow.java
@@ -62,6 +62,8 @@ public class ProtonSessionOutgoingWindow {
     private long remoteIncomingWindow;
     private int remoteNextIncomingId = nextOutgoingId;
 
+    private Runnable outgoingFrameWriteComplete = 
this::handleOutgoingFrameWriteComplete;
+
     private final SplayMap<ProtonOutgoingDelivery> unsettled = new 
SplayMap<>();
 
     public ProtonSessionOutgoingWindow(ProtonSession session) {
@@ -270,8 +272,8 @@ public class ProtonSessionOutgoingWindow {
     private final Disposition cachedDisposition = new Disposition();
     private final Transfer cachedTransfer = new Transfer();
 
-    private void handlePayloadToLargeRequiresSplitFrames(Performative 
performative) {
-        cachedTransfer.setMore(true);
+    private static void handlePayloadToLargeRequiresSplitFrames(Performative 
performative) {
+        ((Transfer) performative).setMore(true);
     }
 
     boolean processSend(ProtonSender sender, ProtonOutgoingDelivery delivery, 
ProtonBuffer payload, boolean complete) {
@@ -311,8 +313,8 @@ public class ProtonSessionOutgoingWindow {
 
                 OutgoingAMQPEnvelope frame = engine.wrap(cachedTransfer, 
localChannel, payload);
 
-                
frame.setPayloadToLargeHandler(this::handlePayloadToLargeRequiresSplitFrames);
-                
frame.setFrameWriteCompletionHandler(this::handleOutgoingFrameWriteComplete);
+                
frame.setPayloadToLargeHandler(ProtonSessionOutgoingWindow::handlePayloadToLargeRequiresSplitFrames);
+                
frame.setFrameWriteCompletionHandler(outgoingFrameWriteComplete);
 
                 engine.fireWrite(frame);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to