Skip to content

Commit b70bfc5

Browse files
committed
Check address list is not empty
Fixes #1081
1 parent 83972f4 commit b70bfc5

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/main/java/com/rabbitmq/client/ConnectionFactory.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1396,7 +1396,9 @@ public Connection newConnection(ExecutorService executor, String connectionName)
13961396
}
13971397

13981398
protected AddressResolver createAddressResolver(List<Address> addresses) {
1399-
if (addresses.size() > 1) {
1399+
if (addresses == null || addresses.isEmpty()) {
1400+
throw new IllegalArgumentException("Please provide at least one address to connect to");
1401+
} else if (addresses.size() > 1) {
14001402
return new ListAddressResolver(addresses);
14011403
} else {
14021404
return new DnsRecordIpAddressResolver(addresses.get(0), isSSL());

src/test/java/com/rabbitmq/client/test/ConnectionFactoryTest.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,7 @@
2525

2626
import javax.net.SocketFactory;
2727
import java.io.IOException;
28-
import java.util.HashMap;
29-
import java.util.List;
30-
import java.util.Map;
31-
import java.util.Queue;
28+
import java.util.*;
3229
import java.util.concurrent.*;
3330
import java.util.concurrent.atomic.AtomicBoolean;
3431
import java.util.concurrent.atomic.AtomicReference;
@@ -306,4 +303,11 @@ public void shouldBeConfigurableUsingFluentAPI() throws Exception {
306303
assertThat(connectionFactory.isSSL()).isEqualTo(true);
307304
}
308305

306+
@Test
307+
void newConnectionWithEmptyAddressListShouldThrowException() {
308+
ConnectionFactory cf = new ConnectionFactory();
309+
assertThatThrownBy(() -> cf.newConnection(Collections.emptyList()));
310+
assertThatThrownBy(() -> cf.newConnection(new Address[] {}));
311+
}
312+
309313
}

0 commit comments

Comments
 (0)