You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2022/09/01 21:59:45 UTC
[qpid-protonj2] branch main updated: PROTON-2599 Prevent unneeded allocations for static friendly call backs
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 <ta...@gmail.com>
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: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org