[
https://issues.apache.org/jira/browse/DIRMINA-458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Trustin Lee closed DIRMINA-458.
-------------------------------
Resolution: Fixed
Fixed by deferring the decrement of the readBufferSize once. Because the
readBufferSize is not decreased immediately, readBufferSize will be retained to
be 4096 in the above counterexample.
> Unnecessary automatic adjustment of read buffer in SocketIoProcessor
> --------------------------------------------------------------------
>
> Key: DIRMINA-458
> URL: https://issues.apache.org/jira/browse/DIRMINA-458
> Project: MINA
> Issue Type: Bug
> Components: Transport
> Affects Versions: 1.0.6, 1.1.3
> Reporter: Trustin Lee
> Assignee: Trustin Lee
> Priority: Minor
> Fix For: 1.1.4, 1.0.7
>
>
> The following code shows that SocketIoProcessor decreases the readBuffer
> property unnecessary at a certain case:
> import java.io.OutputStream;
> import java.net.InetSocketAddress;
> import java.net.Socket;
> import org.apache.mina.common.ByteBuffer;
> import org.apache.mina.common.IoHandlerAdapter;
> import org.apache.mina.common.IoSession;
> import org.apache.mina.transport.socket.nio.SocketAcceptor;
> public class Main {
>
> private static final int SERVER_PORT = 1234;
>
> public static void main(String args[]) throws Exception {
> SocketAcceptor acceptor = new SocketAcceptor();
>
> acceptor.getDefaultConfig().getSessionConfig().setReceiveBufferSize(8192);
> acceptor.bind(new InetSocketAddress(SERVER_PORT), new
> IoHandlerAdapter() {
> @Override
> public void messageReceived(IoSession session, Object o) {
> ByteBuffer b = ((ByteBuffer) o);
> System.out.println("" + b.remaining() + " / " + b.capacity());
> }
> });
>
> Socket s = new Socket("localhost", SERVER_PORT);
> OutputStream out = s.getOutputStream();
> for (int i = 0; i < 5; i++) {
> out.write(new byte[200]);
> Thread.sleep(100);
> }
> for (int i = 0; i < 5; i++) {
> out.write(new byte[3000]);
> Thread.sleep(100);
> }
>
> System.exit(0);
> }
> }
> OUTPUT:
> 400 / 1024
> 200 / 512
> 200 / 256
> 200 / 256
> 256 / 256
> 512 / 512
> 1024 / 1024
> 1208 / 2048
> 2048 / 2048
> 952 / 4096
> 2048 / 2048
> 952 / 4096
> 2048 / 2048
> 952 / 4096
> 2048 / 2048
> 952 / 4096
> Expected behvaior:
> The readBuffer property should stay at 4096.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.