You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2008/11/18 15:02:06 UTC

svn commit: r718595 - in /mina/trunk/core/src/main/java/org/apache/mina/transport/socket: DefaultDatagramSessionConfig.java DefaultSocketSessionConfig.java

Author: elecharny
Date: Tue Nov 18 06:02:06 2008
New Revision: 718595

URL: http://svn.apache.org/viewvc?rev=718595&view=rev
Log:
Removed the ServerSocket creation and socket connection in the Socket/DatagramConfigImpl classes : it breaks badly in an applet or on Vista.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java?rev=718595&r1=718594&r2=718595&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java Tue Nov 18 06:02:06 2008
@@ -20,9 +20,6 @@
 package org.apache.mina.transport.socket;
 
 import java.net.DatagramSocket;
-import java.net.SocketException;
-
-import org.apache.mina.util.ExceptionMonitor;
 
 /**
  * A default implementation of {@link DatagramSessionConfig}.
@@ -42,53 +39,6 @@
     private static int DEFAULT_SEND_BUFFER_SIZE = 1024;
     private static int DEFAULT_TRAFFIC_CLASS = 0;
 
-    static {
-        initialize();
-    }
-
-    private static void initialize() {
-        DatagramSocket socket = null;
-
-        try {
-            socket = new DatagramSocket();
-            DEFAULT_BROADCAST = socket.getBroadcast();
-            DEFAULT_REUSE_ADDRESS = socket.getReuseAddress();
-            DEFAULT_RECEIVE_BUFFER_SIZE = socket.getReceiveBufferSize();
-            DEFAULT_SEND_BUFFER_SIZE = socket.getSendBufferSize();
-
-            // Check if setReceiveBufferSize is supported.
-            try {
-                socket.setReceiveBufferSize(DEFAULT_RECEIVE_BUFFER_SIZE);
-                SET_RECEIVE_BUFFER_SIZE_AVAILABLE = true;
-            } catch (SocketException e) {
-                SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
-            }
-
-            // Check if setSendBufferSize is supported.
-            try {
-                socket.setSendBufferSize(DEFAULT_SEND_BUFFER_SIZE);
-                SET_SEND_BUFFER_SIZE_AVAILABLE = true;
-            } catch (SocketException e) {
-                SET_SEND_BUFFER_SIZE_AVAILABLE = false;
-            }
-
-            // Check if getTrafficClass is supported.
-            try {
-                DEFAULT_TRAFFIC_CLASS = socket.getTrafficClass();
-                GET_TRAFFIC_CLASS_AVAILABLE = true;
-            } catch (SocketException e) {
-                GET_TRAFFIC_CLASS_AVAILABLE = false;
-                DEFAULT_TRAFFIC_CLASS = 0;
-            }
-        } catch (SocketException e) {
-            ExceptionMonitor.getInstance().exceptionCaught(e);
-        } finally {
-            if (socket != null) {
-                socket.close();
-            }
-        }
-    }
-
     public static boolean isSetReceiveBufferSizeAvailable() {
         return SET_RECEIVE_BUFFER_SIZE_AVAILABLE;
     }

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java?rev=718595&r1=718594&r2=718595&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java Tue Nov 18 06:02:06 2008
@@ -19,19 +19,7 @@
  */
 package org.apache.mina.transport.socket;
 
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
 import org.apache.mina.core.service.IoService;
-import org.apache.mina.util.ExceptionMonitor;
 
 /**
  * A default implementation of {@link SocketSessionConfig}.
@@ -40,9 +28,6 @@
  * @version $Rev$, $Date$
  */
 public class DefaultSocketSessionConfig extends AbstractSocketSessionConfig {
-
-    private static Map<InetSocketAddress, InetAddress> TEST_ADDRESSES = new LinkedHashMap<InetSocketAddress, InetAddress>();
-
     private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
     private static boolean SET_SEND_BUFFER_SIZE_AVAILABLE = false;
     private static boolean GET_TRAFFIC_CLASS_AVAILABLE = false;
@@ -56,144 +41,6 @@
     private static int DEFAULT_SO_LINGER = -1;
     private static boolean DEFAULT_TCP_NO_DELAY = false;
 
-    static {
-        initializeTestAddresses();
-
-        boolean success = false;
-        for (Entry<InetSocketAddress, InetAddress> e : TEST_ADDRESSES
-                .entrySet()) {
-            success = initializeDefaultSocketParameters(e.getKey(), e
-                    .getValue());
-            if (success) {
-                break;
-            }
-        }
-
-        if (!success) {
-            initializeFallbackDefaultSocketParameters();
-        }
-    }
-
-    private static void initializeFallbackDefaultSocketParameters() {
-        Socket unconnectedSocket = new Socket(); // Use a unconnected socket.
-        try {
-            initializeDefaultSocketParameters(unconnectedSocket);
-        } catch (SocketException se) {
-            ExceptionMonitor.getInstance().exceptionCaught(se);
-
-            try {
-                unconnectedSocket.close();
-            } catch (IOException ioe) {
-                ExceptionMonitor.getInstance().exceptionCaught(ioe);
-            }
-        }
-    }
-
-    private static void initializeTestAddresses() {
-        try {
-            // These two tests were disabled due to DIRMINA-560
-            // (IPv4 localhost TEST_ADDRESS causes server to hang)
-
-            // IPv6 localhost
-            //TEST_ADDRESSES.put(new InetSocketAddress(InetAddress
-            //        .getByAddress(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            //                0, 0, 0, 0, 1 }), 0), InetAddress
-            //        .getByAddress(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-            //                0, 0, 0, 0, 1 }));
-
-            // IPv4 localhost
-            //TEST_ADDRESSES.put(new InetSocketAddress(InetAddress
-            //        .getByAddress(new byte[] { 127, 0, 0, 1 }), 0), InetAddress
-            //        .getByAddress(new byte[] { 127, 0, 0, 1 }));
-
-            // Bind to wildcard interface and connect to IPv6 localhost
-            TEST_ADDRESSES.put(new InetSocketAddress(0), InetAddress
-                    .getByAddress(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-                            0, 0, 0, 0, 1 }));
-
-            // Bind to wildcard interface and connect to IPv4 localhost
-            TEST_ADDRESSES.put(new InetSocketAddress(0), InetAddress
-                    .getByAddress(new byte[] { 127, 0, 0, 1 }));
-
-        } catch (UnknownHostException e) {
-            ExceptionMonitor.getInstance().exceptionCaught(e);
-        }
-    }
-
-    private static boolean initializeDefaultSocketParameters(
-            InetSocketAddress bindAddress, InetAddress connectAddress) {
-        ServerSocket ss = null;
-        Socket socket = null;
-
-        try {
-            ss = new ServerSocket();
-            ss.bind(bindAddress);
-            socket = new Socket();
-
-            // Timeout is set to 10 seconds in case of infinite blocking
-            // on some platform.
-            socket.connect(new InetSocketAddress(connectAddress, ss
-                    .getLocalPort()), 10000);
-
-            initializeDefaultSocketParameters(socket);
-            return true;
-        } catch (IOException ioe) {
-            return false;
-        } finally {
-            if (socket != null) {
-                try {
-                    socket.close();
-                } catch (IOException e) {
-                    ExceptionMonitor.getInstance().exceptionCaught(e);
-                }
-            }
-
-            if (ss != null) {
-                try {
-                    ss.close();
-                } catch (IOException e) {
-                    ExceptionMonitor.getInstance().exceptionCaught(e);
-                }
-            }
-       }
-    }
-
-    private static void initializeDefaultSocketParameters(Socket socket)
-            throws SocketException {
-        DEFAULT_REUSE_ADDRESS = socket.getReuseAddress();
-        DEFAULT_RECEIVE_BUFFER_SIZE = socket.getReceiveBufferSize();
-        DEFAULT_SEND_BUFFER_SIZE = socket.getSendBufferSize();
-        DEFAULT_KEEP_ALIVE = socket.getKeepAlive();
-        DEFAULT_OOB_INLINE = socket.getOOBInline();
-        DEFAULT_SO_LINGER = socket.getSoLinger();
-        DEFAULT_TCP_NO_DELAY = socket.getTcpNoDelay();
-
-        // Check if setReceiveBufferSize is supported.
-        try {
-            socket.setReceiveBufferSize(DEFAULT_RECEIVE_BUFFER_SIZE);
-            SET_RECEIVE_BUFFER_SIZE_AVAILABLE = true;
-        } catch (SocketException e) {
-            SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
-        }
-
-        // Check if setSendBufferSize is supported.
-        try {
-            socket.setSendBufferSize(DEFAULT_SEND_BUFFER_SIZE);
-            SET_SEND_BUFFER_SIZE_AVAILABLE = true;
-        } catch (SocketException e) {
-            SET_SEND_BUFFER_SIZE_AVAILABLE = false;
-        }
-
-        // Check if getTrafficClass is supported.
-        try {
-            DEFAULT_TRAFFIC_CLASS = socket.getTrafficClass();
-            GET_TRAFFIC_CLASS_AVAILABLE = true;
-        } catch (SocketException e) {
-            GET_TRAFFIC_CLASS_AVAILABLE = false;
-            DEFAULT_TRAFFIC_CLASS = 0;
-        }
-    }
-
     public static boolean isSetReceiveBufferSizeAvailable() {
         return SET_RECEIVE_BUFFER_SIZE_AVAILABLE;
     }