You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/04/05 11:07:56 UTC

svn commit: r525772 - in /mina: branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/ branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/ branches/1.0/core/src/main/java/org/apache/mina/util/ branches/1.1/core/...

Author: trustin
Date: Thu Apr  5 02:07:55 2007
New Revision: 525772

URL: http://svn.apache.org/viewvc?view=rev&rev=525772
Log:
Related issue: DIRMINA-366 (Default socket option values are retrieved incorrectly.)
* Made sure the default reuseAddress value of an accepted socket to be true
* Removed unnecessary code in DatagramSessionConfig implementations
* Removed SessionUtil in trunk because it's hardly useful
* Removed a sentence in SessionUtil that sets reuseAddress to true bindly which can cause a problem for a non-acceptor session


Removed:
    mina/trunk/core/src/main/java/org/apache/mina/util/SessionUtil.java
Modified:
    mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
    mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
    mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java
    mina/branches/1.0/core/src/main/java/org/apache/mina/util/SessionUtil.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java
    mina/branches/1.1/core/src/main/java/org/apache/mina/util/SessionUtil.java
    mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java
    mina/trunk/core/src/main/java/org/apache/mina/handler/multiton/SingleSessionIoHandlerAdapter.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Thu Apr  5 02:07:55 2007
@@ -38,9 +38,10 @@
 import org.apache.mina.common.IoHandler;
 import org.apache.mina.common.IoServiceConfig;
 import org.apache.mina.common.support.BaseIoAcceptor;
-import org.apache.mina.util.Queue;
-import org.apache.mina.util.NewThreadExecutor;
 import org.apache.mina.util.NamePreservingRunnable;
+import org.apache.mina.util.NewThreadExecutor;
+import org.apache.mina.util.Queue;
+
 import edu.emory.mathcs.backport.java.util.concurrent.Executor;
 
 /**
@@ -96,6 +97,9 @@
         {
             throw new IllegalArgumentException( "Must have at least one processor" );
         }
+
+        // The default reuseAddress of an accepted socket should be 'true'.
+        ( ( SocketSessionConfig ) defaultConfig.getSessionConfig() ).setReuseAddress(true);
 
         this.executor = executor;
         this.processorCount = processorCount;

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java Thu Apr  5 02:07:55 2007
@@ -78,6 +78,9 @@
     {
         this.wrapper = wrapper;
         this.executor = executor;
+        
+        // The default reuseAddress of an accepted socket should be 'true'.
+        ( ( DatagramSessionConfig ) defaultConfig.getSessionConfig() ).setReuseAddress(true);
     }
 
     public void bind( SocketAddress address, IoHandler handler, IoServiceConfig config )

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java Thu Apr  5 02:07:55 2007
@@ -22,7 +22,6 @@
 import java.net.DatagramSocket;
 import java.net.SocketException;
 
-import org.apache.mina.common.RuntimeIOException;
 import org.apache.mina.common.support.BaseIoSessionConfig;
 import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
 
@@ -128,32 +127,9 @@
 
     /**
      * Creates a new instance.
-     * 
-     * @throws RuntimeIOException if failed to get the default configuration
      */
     public DatagramSessionConfigImpl()
     {
-        DatagramSocket s = null;
-        try
-        {
-            s = new DatagramSocket();
-            broadcast = s.getBroadcast();
-            reuseAddress = s.getReuseAddress();
-            receiveBufferSize = s.getReceiveBufferSize();
-            sendBufferSize = s.getSendBufferSize();
-            trafficClass = s.getTrafficClass();
-        }
-        catch( SocketException e )
-        {
-            throw new RuntimeIOException( "Failed to get the default configuration.", e );
-        }
-        finally
-        {
-            if( s != null )
-            {
-                s.close();
-            }
-        }
     }
 
     /**

Modified: mina/branches/1.0/core/src/main/java/org/apache/mina/util/SessionUtil.java
URL: http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/util/SessionUtil.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.0/core/src/main/java/org/apache/mina/util/SessionUtil.java (original)
+++ mina/branches/1.0/core/src/main/java/org/apache/mina/util/SessionUtil.java Thu Apr  5 02:07:55 2007
@@ -21,7 +21,6 @@
 
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoSessionConfig;
-import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
 import org.apache.mina.transport.socket.nio.SocketSessionConfig;
 
 /**
@@ -38,13 +37,7 @@
         if( cfg instanceof SocketSessionConfig )
         {
             SocketSessionConfig sCfg = ( SocketSessionConfig ) cfg;
-            sCfg.setReuseAddress( true );
             sCfg.setKeepAlive( true );
-        }
-        else if( cfg instanceof DatagramSessionConfig )
-        {
-            DatagramSessionConfig dCfg = ( DatagramSessionConfig ) cfg;
-            dCfg.setReuseAddress( true );
         }
     }
 

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Thu Apr  5 02:07:55 2007
@@ -94,6 +94,9 @@
             throw new IllegalArgumentException( "Must have at least one processor" );
         }
 
+        // The default reuseAddress of an accepted socket should be 'true'.
+        defaultConfig.getSessionConfig().setReuseAddress(true);
+
         this.executor = executor;
         this.processorCount = processorCount;
         ioProcessors = new SocketIoProcessor[processorCount];

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java Thu Apr  5 02:07:55 2007
@@ -81,6 +81,9 @@
     {
         this.wrapper = wrapper;
         this.executor = executor;
+        
+        // The default reuseAddress of an accepted socket should be 'true'.
+        defaultConfig.getSessionConfig().setReuseAddress(true);
     }
 
     public void bind( SocketAddress address, IoHandler handler, IoServiceConfig config )

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramSessionConfigImpl.java Thu Apr  5 02:07:55 2007
@@ -22,7 +22,6 @@
 import java.net.DatagramSocket;
 import java.net.SocketException;
 
-import org.apache.mina.common.RuntimeIOException;
 import org.apache.mina.common.support.BaseIoSessionConfig;
 import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
 
@@ -128,32 +127,9 @@
 
     /**
      * Creates a new instance.
-     * 
-     * @throws RuntimeIOException if failed to get the default configuration
      */
     public DatagramSessionConfigImpl()
     {
-        DatagramSocket s = null;
-        try
-        {
-            s = new DatagramSocket();
-            broadcast = s.getBroadcast();
-            reuseAddress = s.getReuseAddress();
-            receiveBufferSize = s.getReceiveBufferSize();
-            sendBufferSize = s.getSendBufferSize();
-            trafficClass = s.getTrafficClass();
-        }
-        catch( SocketException e )
-        {
-            throw new RuntimeIOException( "Failed to get the default configuration.", e );
-        }
-        finally
-        {
-            if( s != null )
-            {
-                s.close();
-            }
-        }
     }
 
     /**

Modified: mina/branches/1.1/core/src/main/java/org/apache/mina/util/SessionUtil.java
URL: http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/util/SessionUtil.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/branches/1.1/core/src/main/java/org/apache/mina/util/SessionUtil.java (original)
+++ mina/branches/1.1/core/src/main/java/org/apache/mina/util/SessionUtil.java Thu Apr  5 02:07:55 2007
@@ -21,7 +21,6 @@
 
 import org.apache.mina.common.IoSession;
 import org.apache.mina.common.IoSessionConfig;
-import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
 import org.apache.mina.transport.socket.nio.SocketSessionConfig;
 
 /**
@@ -38,13 +37,7 @@
         if( cfg instanceof SocketSessionConfig )
         {
             SocketSessionConfig sCfg = ( SocketSessionConfig ) cfg;
-            sCfg.setReuseAddress( true );
             sCfg.setKeepAlive( true );
-        }
-        else if( cfg instanceof DatagramSessionConfig )
-        {
-            DatagramSessionConfig dCfg = ( DatagramSessionConfig ) cfg;
-            dCfg.setReuseAddress( true );
         }
     }
 

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoHandlerAdapter.java Thu Apr  5 02:07:55 2007
@@ -20,7 +20,6 @@
 package org.apache.mina.common;
 
 import org.apache.mina.util.SessionLog;
-import org.apache.mina.util.SessionUtil;
 
 /**
  * An abstract adapter class for {@link IoHandler}.  You can extend this
@@ -34,7 +33,6 @@
 {
     public void sessionCreated( IoSession session ) throws Exception
     {
-        SessionUtil.initialize( session );
     }
 
     public void sessionOpened( IoSession session ) throws Exception

Modified: mina/trunk/core/src/main/java/org/apache/mina/handler/multiton/SingleSessionIoHandlerAdapter.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/handler/multiton/SingleSessionIoHandlerAdapter.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/handler/multiton/SingleSessionIoHandlerAdapter.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/handler/multiton/SingleSessionIoHandlerAdapter.java Thu Apr  5 02:07:55 2007
@@ -21,7 +21,6 @@
 
 import org.apache.mina.common.IdleStatus;
 import org.apache.mina.common.IoSession;
-import org.apache.mina.util.SessionUtil;
 
 /**
  * Adapter class for implementors of the {@link SingleSessionIoHandler}
@@ -81,7 +80,6 @@
 
     public void sessionCreated() throws Exception
     {
-        SessionUtil.initialize( getSession() );
     }
 
     public void sessionIdle(IdleStatus status) throws Exception

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/DefaultDatagramSessionConfig.java Thu Apr  5 02:07:55 2007
@@ -22,7 +22,6 @@
 import java.net.DatagramSocket;
 import java.net.SocketException;
 
-import org.apache.mina.common.RuntimeIOException;
 import org.apache.mina.common.support.BaseIoSessionConfig;
 
 /**
@@ -129,32 +128,9 @@
 
     /**
      * Creates a new instance.
-     * 
-     * @throws RuntimeIOException if failed to get the default configuration
      */
     public DefaultDatagramSessionConfig()
     {
-        DatagramSocket s = null;
-        try
-        {
-            s = new DatagramSocket();
-            broadcast = s.getBroadcast();
-            reuseAddress = s.getReuseAddress();
-            receiveBufferSize = s.getReceiveBufferSize();
-            sendBufferSize = s.getSendBufferSize();
-            trafficClass = s.getTrafficClass();
-        }
-        catch( SocketException e )
-        {
-            throw new RuntimeIOException( "Failed to get the default configuration.", e );
-        }
-        finally
-        {
-            if( s != null )
-            {
-                s.close();
-            }
-        }
     }
 
     /**

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/SocketAcceptor.java Thu Apr  5 02:07:55 2007
@@ -93,6 +93,10 @@
     public SocketAcceptor( int processorCount, Executor executor )
     {
         super( new DefaultSocketSessionConfig() );
+
+        // The default reuseAddress of an accepted socket should be 'true'.
+        getSessionConfig().setReuseAddress(true);
+
         if( processorCount < 1 )
         {
             throw new IllegalArgumentException( "Must have at least one processor" );

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java?view=diff&rev=525772&r1=525771&r2=525772
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramAcceptorDelegate.java Thu Apr  5 02:07:55 2007
@@ -77,6 +77,9 @@
     {
         super( new DefaultDatagramSessionConfig() );
 
+        // The default reuseAddress should be 'true' for an accepted socket.
+        getSessionConfig().setReuseAddress(true);
+
         try
         {
             this.selector = Selector.open();