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();
     }
 
     /**

Reply via email to