[ 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)