MINA
  1. MINA
  2. DIRMINA-638

DefaultSocketSessionConfig creates some connection to itself.

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Blocker Blocker
    • Resolution: Unresolved
    • Affects Version/s: 1.1.7
    • Fix Version/s: 1.1.8
    • Component/s: None
    • Labels:
      None

      Description

      For some unknown reason, the DefaultSocketSessionConfig class is creating a ServerSocket, and create a connection :

      static {
      initializeTestAddresses();

      boolean success = false;
      for (Entry<InetSocketAddress, InetAddress> e : TEST_ADDRESSES.entrySet()) {
      success = initializeDefaultSocketParameters(e.getKey(), e.getValue());
      if (success)

      { break; }

      }

      private static void initializeTestAddresses() {
      try {
      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 }

      ));
      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(); 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); }

      }
      }
      }

      The only reason why this code exists is to setup the default values for the socket configuration.

      Not only is this bad code, but also a totally wrong thing to do : in many environment, creating sockets this way will lead to breakages (Applet, etc).

      It as to be fixed urgently.

        Issue Links

          Activity

            People

            • Assignee:
              Emmanuel Lecharny
              Reporter:
              Emmanuel Lecharny
            • Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:

                Development