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]