Skip to content

Commit 5702022

Browse files
authored
Always re-resolve SocketAddress on reconnect. (#384)
* Always re-resolve Socket Address on reconnect. Drops QFJ-822 and revises QFJ-226.
1 parent 4f7ebcb commit 5702022

File tree

1 file changed

+3
-16
lines changed

1 file changed

+3
-16
lines changed

quickfixj-core/src/main/java/quickfix/mina/initiator/IoSessionInitiator.java

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@ private void pollConnectFuture() {
254254
private void handleConnectException(Throwable e) {
255255
++connectionFailureCount;
256256
SocketAddress socketAddress = socketAddresses[getCurrentSocketAddressIndex()];
257-
unresolveCurrentSocketAddress(socketAddress);
258257
while (e.getCause() != null) {
259258
e = e.getCause();
260259
}
@@ -272,28 +271,16 @@ private void handleConnectException(Throwable e) {
272271
private SocketAddress getNextSocketAddress() {
273272
SocketAddress socketAddress = socketAddresses[nextSocketAddressIndex];
274273

275-
// QFJ-266 Recreate socket address for unresolved addresses
274+
// Recreate socket address to avoid cached address resolution
276275
if (socketAddress instanceof InetSocketAddress) {
277276
InetSocketAddress inetAddr = (InetSocketAddress) socketAddress;
278-
if (inetAddr.isUnresolved()) {
279-
socketAddress = new InetSocketAddress(inetAddr.getHostName(), inetAddr
280-
.getPort());
281-
socketAddresses[nextSocketAddressIndex] = socketAddress;
282-
}
277+
socketAddress = new InetSocketAddress(inetAddr.getHostName(), inetAddr.getPort());
278+
socketAddresses[nextSocketAddressIndex] = socketAddress;
283279
}
284280
nextSocketAddressIndex = (nextSocketAddressIndex + 1) % socketAddresses.length;
285281
return socketAddress;
286282
}
287283

288-
// QFJ-822 Reset cached DNS resolution information on connection failure.
289-
private void unresolveCurrentSocketAddress(SocketAddress socketAddress) {
290-
if (socketAddress instanceof InetSocketAddress) {
291-
InetSocketAddress inetAddr = (InetSocketAddress) socketAddress;
292-
socketAddresses[getCurrentSocketAddressIndex()] = InetSocketAddress.createUnresolved(
293-
inetAddr.getHostString(), inetAddr.getPort());
294-
}
295-
}
296-
297284
private int getCurrentSocketAddressIndex() {
298285
return (nextSocketAddressIndex + socketAddresses.length - 1) % socketAddresses.length;
299286
}

0 commit comments

Comments
 (0)