Skip to content

Commit a8385ae

Browse files
committed
Origional patch
1 parent 26ecc05 commit a8385ae

4 files changed

Lines changed: 11 additions & 3 deletions

File tree

mina-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<parent>
2525
<groupId>org.apache.mina</groupId>
2626
<artifactId>mina-parent</artifactId>
27-
<version>2.1.4-SNAPSHOT</version>
27+
<version>2.1.4-PSG</version>
2828
</parent>
2929

3030
<artifactId>mina-core</artifactId>

mina-core/src/main/java/org/apache/mina/filter/codec/AbstractProtocolEncoderOutput.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ public void mergeAll() {
100100
}
101101

102102
newBuf.put(buf);
103+
buf.free();
103104
}
104105

105106
// Push the new buffer finally.

mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,12 @@ public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) th
165165
newBuf.put(buf);
166166
newBuf.put(in);
167167
newBuf.flip();
168+
buf.free();
168169
buf = newBuf;
169170

170171
// Update the session attribute.
172+
IoBuffer oldBuf = (IoBuffer) session.getAttribute(BUFFER);
173+
if (oldBuf != null) oldBuf.free();
171174
session.setAttribute(BUFFER, buf);
172175
}
173176
} else {
@@ -234,15 +237,18 @@ public void dispose(IoSession session) throws Exception {
234237
}
235238

236239
private void removeSessionBuffer(IoSession session) {
237-
session.removeAttribute(BUFFER);
238-
}
240+
IoBuffer oldBuf = (IoBuffer) session.removeAttribute(BUFFER);
241+
if (oldBuf != null) oldBuf.free();
242+
}
239243

240244
private void storeRemainingInSession(IoBuffer buf, IoSession session) {
241245
final IoBuffer remainingBuf = IoBuffer.allocate(buf.capacity()).setAutoExpand(true);
242246

243247
remainingBuf.order(buf.order());
244248
remainingBuf.put(buf);
245249

250+
IoBuffer oldBuf = (IoBuffer) session.getAttribute(BUFFER);
251+
if (oldBuf != null) oldBuf.free();
246252
session.setAttribute(BUFFER, remainingBuf);
247253
}
248254

mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ public void messageReceived(NextFilter nextFilter, IoSession session, Object mes
281281
}
282282
}
283283
}
284+
in.free();
284285
}
285286

286287
/**

0 commit comments

Comments
 (0)