[
https://issues.apache.org/jira/browse/DIRMINA-638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Emmanuel Lecharny closed DIRMINA-638.
-------------------------------------
Resolution: Won't Fix
Branch 1.1 is dead.
> 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
>
> Attachments: mina-proposed-changes.tar
>
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)