This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new e067460263 Align buffer use pattern with the FFM code
e067460263 is described below
commit e06746026300da8710c685c9c15c14cb82d5bd9c
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Mar 19 15:55:49 2026 +0000
Align buffer use pattern with the FFM code
This uses 18KB of memory per connection.
---
java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java | 10 ++--------
webapps/docs/changelog.xml | 8 ++++++++
2 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
b/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
index 6aaa27135c..5344097a84 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLEngine.java
@@ -135,6 +135,7 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
private final long ssl;
private final long networkBIO;
private final long aprGeneration;
+ private ByteBuffer buf =
ByteBuffer.allocateDirect(MAX_ENCRYPTED_PACKET_LENGTH);
private enum Accepted {
NOT,
@@ -234,6 +235,7 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
Library.returnCleanUpLock();
}
}
+ ByteBufferUtils.cleanDirectBuffer(buf);
}
}
@@ -260,7 +262,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
return sslWrote;
}
} else {
- ByteBuffer buf = ByteBuffer.allocateDirect(len);
try {
final long addr = Buffer.address(buf);
@@ -281,7 +282,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
}
} finally {
buf.clear();
- ByteBufferUtils.cleanDirectBuffer(buf);
}
}
@@ -308,7 +308,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
return netWrote;
}
} else {
- ByteBuffer buf = ByteBuffer.allocateDirect(len);
try {
final long addr = Buffer.address(buf);
@@ -326,7 +325,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
}
} finally {
buf.clear();
- ByteBufferUtils.cleanDirectBuffer(buf);
}
}
@@ -355,7 +353,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
final int pos = dst.position();
final int limit = dst.limit();
final int len = Math.min(MAX_ENCRYPTED_PACKET_LENGTH, limit - pos);
- final ByteBuffer buf = ByteBuffer.allocateDirect(len);
try {
final long addr = Buffer.address(buf);
@@ -371,7 +368,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
}
} finally {
buf.clear();
- ByteBufferUtils.cleanDirectBuffer(buf);
}
}
@@ -396,7 +392,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
checkLastError();
}
} else {
- final ByteBuffer buf = ByteBuffer.allocateDirect(pending);
try {
final long addr = Buffer.address(buf);
@@ -413,7 +408,6 @@ public final class OpenSSLEngine extends SSLEngine
implements SSLUtil.ProtocolIn
}
} finally {
buf.clear();
- ByteBufferUtils.cleanDirectBuffer(buf);
}
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 8eaaae79ab..d519e43144 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -105,6 +105,14 @@
issues do not "pop up" wrt. others).
-->
<section name="Tomcat 9.0.117 (remm)" rtext="in development">
+ <subsection name="Coyote">
+ <changelog>
+ <update>
+ Align buffer reuse of the OpenSSLEngine for tomcat-native with the FFM
+ code. (remm)
+ </update>
+ </changelog>
+ </subsection>
</section>
<section name="Tomcat 9.0.116 (remm)" rtext="release in progress">
<subsection name="Catalina">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]