Skip to content

Commit

Permalink
improve error msg obscure when connect url port miss
Browse files Browse the repository at this point in the history
  • Loading branch information
camilesing committed Sep 13, 2021
1 parent 920aa06 commit e201bbc
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
25 changes: 25 additions & 0 deletions src/main/java/org/influxdb/InfluxDBFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import okhttp3.OkHttpClient;
import org.influxdb.impl.Preconditions;

import java.net.URL;
import java.net.MalformedURLException;
import java.util.Objects;


Expand All @@ -27,6 +29,7 @@ public enum InfluxDBFactory {
*/
public static InfluxDB connect(final String url) {
Preconditions.checkNonEmptyString(url, "url");
checkUrl(url);
return new InfluxDBImpl(url, null, null, new OkHttpClient.Builder());
}

Expand All @@ -45,6 +48,7 @@ public static InfluxDB connect(final String url) {
public static InfluxDB connect(final String url, final String username, final String password) {
Preconditions.checkNonEmptyString(url, "url");
Preconditions.checkNonEmptyString(username, "username");
checkUrl(url);
return new InfluxDBImpl(url, username, password, new OkHttpClient.Builder());
}

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

Expand All @@ -79,6 +84,7 @@ public static InfluxDB connect(final String url, final OkHttpClient.Builder clie
*/
public static InfluxDB connect(final String url, final String username, final String password,
final OkHttpClient.Builder client) {
checkUrl(url);
return connect(url, username, password, client, ResponseFormat.JSON);
}

Expand All @@ -103,6 +109,25 @@ public static InfluxDB connect(final String url, final String username, final St
Preconditions.checkNonEmptyString(url, "url");
Preconditions.checkNonEmptyString(username, "username");
Objects.requireNonNull(client, "client");
checkUrl(url);
return new InfluxDBImpl(url, username, password, client, responseFormat);
}

/**
* Check url is legal
*/
private static void checkUrl(final String url) {
String colon = ":";
if (!url.contains(colon) || url.endsWith(colon)) {
throw new IllegalArgumentException(String.format("The url [%s] port cannot be null", url));
}
try {
URL urlObj = new URL(url);
if (-1 == urlObj.getPort()) {
throw new IllegalArgumentException(String.format("The url [%s] port cannot be null", url));
}
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
}
}
14 changes: 14 additions & 0 deletions src/test/java/org/influxdb/InfluxDBFactoryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,18 @@ public void testShouldThrowIllegalArgumentWithInvalidUrl() {
InfluxDBFactory.connect("invalidUrl");
});
}

@Test
public void testUrlNotContainsColon() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
InfluxDBFactory.connect("http://" + TestUtils.getInfluxIP());
});
}

@Test
public void testUrlEndWithColon() {
Assertions.assertThrows(IllegalArgumentException.class, () -> {
InfluxDBFactory.connect("http://" + TestUtils.getInfluxIP() + ":");
});
}
}

0 comments on commit e201bbc

Please sign in to comment.