[
https://issues.apache.org/jira/browse/DIRMINA-1061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Emmanuel Lecharny resolved DIRMINA-1061.
----------------------------------------
Resolution: Fixed
Fix Version/s: 2.0.17
Patch applied : http://git-wip-us.apache.org/repos/asf/mina/commit/972449e9
> When AbstractPollingIoProcessor read nothing, free the temporary buffer
> should be better
> ----------------------------------------------------------------------------------------
>
> Key: DIRMINA-1061
> URL: https://issues.apache.org/jira/browse/DIRMINA-1061
> Project: MINA
> Issue Type: Improvement
> Components: Core
> Affects Versions: 2.0.16
> Reporter: Mark
> Priority: Minor
> Fix For: 2.0.17
>
> Attachments: mina-core-2.0.16.patch
>
>
> {code:title=org.apache.mina.core.polling.AbstractPollingIoProcessor.java|borderStyle=solid}
> private void read(S session) {
> IoSessionConfig config = session.getConfig();
> int bufferSize = config.getReadBufferSize();
> IoBuffer buf = IoBuffer.allocate(bufferSize);
> //...
> //...
> if (readBytes > 0) {
> IoFilterChain filterChain = session.getFilterChain();
> filterChain.fireMessageReceived(buf);
> buf = null;
> if (hasFragmentation) {
> if (readBytes << 1 < config.getReadBufferSize()) {
> session.decreaseReadBufferSize();
> } else if (readBytes == config.getReadBufferSize()) {
> session.increaseReadBufferSize();
> }
> }
> }
> {code}
> it seems that this method will be called when session closing.
> it'll better to call buf.free() if readBytes==0, to help allocator recycle
> this buffer, thx!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)