Uploaded image for project: 'MINA'
  1. MINA
  2. DIRMINA-638

DefaultSocketSessionConfig creates some connection to itself.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Won't Fix
    • 1.1.7
    • 1.1.8
    • None
    • 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.

      Attachments

        1. mina-proposed-changes.tar
          9 kB
          John Costello

        Issue Links

          Activity

            People

              elecharny Emmanuel Lécharny
              elecharny Emmanuel Lécharny
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: