mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DIRMINA-638) DefaultSocketSessionConfig creates some connection to itself.
Date Tue, 18 Nov 2008 17:35:44 GMT

     [ 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:     (was: 2.0.0-M3)
        Fix Version/s:     (was: 2.0.0-M4)

Just kept 1.1.7 as the problem is fixed for 2.0.0-M3 (hopefully)

> 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
>            Reporter: Emmanuel Lecharny
>            Assignee: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: 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.


Mime
View raw message