Skip to content

Commit e201bbc

Browse files
committed
improve error msg obscure when connect url port miss
1 parent 920aa06 commit e201bbc

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

src/main/java/org/influxdb/InfluxDBFactory.java

+25
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import okhttp3.OkHttpClient;
77
import org.influxdb.impl.Preconditions;
88

9+
import java.net.URL;
10+
import java.net.MalformedURLException;
911
import java.util.Objects;
1012

1113

@@ -27,6 +29,7 @@ public enum InfluxDBFactory {
2729
*/
2830
public static InfluxDB connect(final String url) {
2931
Preconditions.checkNonEmptyString(url, "url");
32+
checkUrl(url);
3033
return new InfluxDBImpl(url, null, null, new OkHttpClient.Builder());
3134
}
3235

@@ -45,6 +48,7 @@ public static InfluxDB connect(final String url) {
4548
public static InfluxDB connect(final String url, final String username, final String password) {
4649
Preconditions.checkNonEmptyString(url, "url");
4750
Preconditions.checkNonEmptyString(username, "username");
51+
checkUrl(url);
4852
return new InfluxDBImpl(url, username, password, new OkHttpClient.Builder());
4953
}
5054

@@ -60,6 +64,7 @@ public static InfluxDB connect(final String url, final String username, final St
6064
public static InfluxDB connect(final String url, final OkHttpClient.Builder client) {
6165
Preconditions.checkNonEmptyString(url, "url");
6266
Objects.requireNonNull(client, "client");
67+
checkUrl(url);
6368
return new InfluxDBImpl(url, null, null, client);
6469
}
6570

@@ -79,6 +84,7 @@ public static InfluxDB connect(final String url, final OkHttpClient.Builder clie
7984
*/
8085
public static InfluxDB connect(final String url, final String username, final String password,
8186
final OkHttpClient.Builder client) {
87+
checkUrl(url);
8288
return connect(url, username, password, client, ResponseFormat.JSON);
8389
}
8490

@@ -103,6 +109,25 @@ public static InfluxDB connect(final String url, final String username, final St
103109
Preconditions.checkNonEmptyString(url, "url");
104110
Preconditions.checkNonEmptyString(username, "username");
105111
Objects.requireNonNull(client, "client");
112+
checkUrl(url);
106113
return new InfluxDBImpl(url, username, password, client, responseFormat);
107114
}
115+
116+
/**
117+
* Check url is legal
118+
*/
119+
private static void checkUrl(final String url) {
120+
String colon = ":";
121+
if (!url.contains(colon) || url.endsWith(colon)) {
122+
throw new IllegalArgumentException(String.format("The url [%s] port cannot be null", url));
123+
}
124+
try {
125+
URL urlObj = new URL(url);
126+
if (-1 == urlObj.getPort()) {
127+
throw new IllegalArgumentException(String.format("The url [%s] port cannot be null", url));
128+
}
129+
} catch (MalformedURLException e) {
130+
throw new RuntimeException(e);
131+
}
132+
}
108133
}

src/test/java/org/influxdb/InfluxDBFactoryTest.java

+14
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,18 @@ public void testShouldThrowIllegalArgumentWithInvalidUrl() {
5454
InfluxDBFactory.connect("invalidUrl");
5555
});
5656
}
57+
58+
@Test
59+
public void testUrlNotContainsColon() {
60+
Assertions.assertThrows(IllegalArgumentException.class, () -> {
61+
InfluxDBFactory.connect("http://" + TestUtils.getInfluxIP());
62+
});
63+
}
64+
65+
@Test
66+
public void testUrlEndWithColon() {
67+
Assertions.assertThrows(IllegalArgumentException.class, () -> {
68+
InfluxDBFactory.connect("http://" + TestUtils.getInfluxIP() + ":");
69+
});
70+
}
5771
}

0 commit comments

Comments
 (0)