[ https://issues.apache.org/jira/browse/DIRMINA-638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Emmanuel Lecharny updated DIRMINA-638: -------------------------------------- Affects Version/s: 1.1.7 Fix Version/s: 1.1.8 It affects also 1.1.7, and the Datagram support. > DefaultSocketSessionConfig creates some connection to itself. > ------------------------------------------------------------- > > Key: DIRMINA-638 > URL: https://issues.apache.org/jira/browse/DIRMINA-638 > Project: MINA > Issue Type: Bug > Affects Versions: 1.1.7, 2.0.0-M3 > Reporter: Emmanuel Lecharny > Priority: Blocker > Fix For: 2.0.0-M4, 1.1.8 > > > 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. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.