MINA
  1. MINA
  2. DIRMINA-638

DefaultSocketSessionConfig creates some connection to itself.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Won't Fix
    • 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

          No work has yet been logged on this issue.

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development