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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 
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();


Reply via email to