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

Reply via email to