diff --git a/data/src/main/java/com/microsoft/azure/kusto/data/ClientImpl.java b/data/src/main/java/com/microsoft/azure/kusto/data/ClientImpl.java index 16fe89a4..e730b2c2 100644 --- a/data/src/main/java/com/microsoft/azure/kusto/data/ClientImpl.java +++ b/data/src/main/java/com/microsoft/azure/kusto/data/ClientImpl.java @@ -265,14 +265,10 @@ public Mono processRequestAsync(KustoRequestContext request) { } private void validateEndpoint() throws DataServiceException, DataClientException { - try { - if (!endpointValidated) { - KustoTrustedEndpoints.validateTrustedEndpoint(clusterUrl, - CloudInfo.retrieveCloudInfoForCluster(clusterUrl).getLoginEndpoint()); - endpointValidated = true; - } - } catch (KustoClientInvalidConnectionStringException e) { - throw new DataClientException(clusterUrl, e.getMessage(), e); + if (!endpointValidated) { + KustoTrustedEndpoints.validateTrustedEndpoint(clusterUrl, + CloudInfo.retrieveCloudInfoForCluster(clusterUrl).getLoginEndpoint()); + endpointValidated = true; } } diff --git a/data/src/main/java/com/microsoft/azure/kusto/data/auth/endpoints/KustoTrustedEndpoints.java b/data/src/main/java/com/microsoft/azure/kusto/data/auth/endpoints/KustoTrustedEndpoints.java index 56404399..bb5aaafb 100644 --- a/data/src/main/java/com/microsoft/azure/kusto/data/auth/endpoints/KustoTrustedEndpoints.java +++ b/data/src/main/java/com/microsoft/azure/kusto/data/auth/endpoints/KustoTrustedEndpoints.java @@ -60,7 +60,7 @@ public static void validateTrustedEndpoint(String uri, String loginEndpoint) thr try { validateTrustedEndpoint(new URI(uri), loginEndpoint); } catch (URISyntaxException ex) { - throw new KustoClientInvalidConnectionStringException(ex); + throw new KustoClientInvalidConnectionStringException(uri, ex.getMessage(), ex); } } diff --git a/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/DataClientException.java b/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/DataClientException.java index 47a57c05..33b10aea 100644 --- a/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/DataClientException.java +++ b/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/DataClientException.java @@ -7,6 +7,14 @@ This class represents an error that happened on the client side and is therefore considered permanent */ public class DataClientException extends KustoDataExceptionBase { + public DataClientException(Exception ex) { + this(ex.getMessage()); + } + + public DataClientException(String message) { + this(null, message); + } + public DataClientException(String ingestionSource, String message) { this(ingestionSource, message, null); } diff --git a/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/KustoClientInvalidConnectionStringException.java b/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/KustoClientInvalidConnectionStringException.java index 17a408ec..ee068167 100644 --- a/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/KustoClientInvalidConnectionStringException.java +++ b/data/src/main/java/com/microsoft/azure/kusto/data/exceptions/KustoClientInvalidConnectionStringException.java @@ -3,7 +3,7 @@ /** * Raised when Kusto client is initialized with an invalid endpoint */ -public class KustoClientInvalidConnectionStringException extends Exception { +public class KustoClientInvalidConnectionStringException extends DataClientException { public KustoClientInvalidConnectionStringException(Exception e) { super(e); } @@ -11,4 +11,8 @@ public KustoClientInvalidConnectionStringException(Exception e) { public KustoClientInvalidConnectionStringException(String msg) { super(msg); } + + public KustoClientInvalidConnectionStringException(String clusterURL, String msg, Exception e) { + super(clusterURL, msg, e); + } }