This is an automated email from the ASF dual-hosted git repository. elecharny pushed a commit to branch bugfix/DIRMINA-1173 in repository https://gitbox.apache.org/repos/asf/mina.git
The following commit(s) were added to refs/heads/bugfix/DIRMINA-1173 by this push: new df98d0947 Free a useless buffer. df98d0947 is described below commit df98d09478736f6d70b161da96cea9c723778a2a Author: emmanuel lecharny <elecha...@apache.org> AuthorDate: Thu Apr 18 14:40:38 2024 +0200 Free a useless buffer. --- .../apache/mina/filter/codec/CumulativeProtocolDecoder.java | 13 +++++++++++++ .../org/apache/mina/filter/codec/ProtocolCodecFilter.java | 2 ++ 2 files changed, 15 insertions(+) diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java index 73b00b909..eeb3e13d1 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java @@ -169,6 +169,12 @@ public abstract class CumulativeProtocolDecoder extends ProtocolDecoderAdapter { buf = newBuf; // Update the session attribute. + IoBuffer oldBuf = (IoBuffer) session.getAttribute(BUFFER); + + if (oldBuf != null) { + oldBuf.free(); + } + session.setAttribute(BUFFER, buf); } } else { @@ -236,6 +242,7 @@ public abstract class CumulativeProtocolDecoder extends ProtocolDecoderAdapter { private void removeSessionBuffer(IoSession session) { IoBuffer buf = (IoBuffer) session.removeAttribute(BUFFER); + if (buf != null) { buf.free(); } @@ -247,6 +254,12 @@ public abstract class CumulativeProtocolDecoder extends ProtocolDecoderAdapter { remainingBuf.order(buf.order()); remainingBuf.put(buf); + IoBuffer oldBuf = (IoBuffer) session.getAttribute(BUFFER); + + if (oldBuf != null) { + oldBuf.free(); + } + session.setAttribute(BUFFER, remainingBuf); } diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java index 06a11c93b..1f46c7524 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java @@ -273,6 +273,8 @@ public class ProtocolCodecFilter extends IoFilterAdapter { } } } + + in.free(); } /**