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