From 15051f07682e635a9a30a51c64227a61fe9418b0 Mon Sep 17 00:00:00 2001 From: shafang Date: Fri, 3 Jan 2020 17:32:44 -0800 Subject: [PATCH 1/4] throw IllegalArgException --- .../ConfigurationClientBuilder.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java index b4d1ad18e5e1..3410a9c09d78 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java @@ -239,25 +239,26 @@ public ConfigurationClientBuilder endpoint(String endpoint) { * @param connectionString Connection string in the format "endpoint={endpoint_value};id={id_value}; * secret={secret_value}" * @return The updated ConfigurationClientBuilder object. - * @throws NullPointerException If {@code credential} is {@code null}. + * @throws IllegalArgumentException if {@code connectionString} is null or an empty string. Or the secret is + * invalid and cannot instantiate HMAC-SHA256 MAC algorithm. */ public ConfigurationClientBuilder connectionString(String connectionString) { - Objects.requireNonNull(connectionString); + if (CoreUtils.isNullOrEmpty(connectionString)) { + throw logger.logExceptionAsError( + new IllegalArgumentException("'connectionString' cannot be null or an empty string.")); + } try { this.credential = new ConfigurationClientCredentials(connectionString); } catch (InvalidKeyException err) { throw logger.logExceptionAsError(new IllegalArgumentException( - "The secret is invalid and cannot instantiate the HMAC-SHA256 algorithm.", err)); + "The secret is invalid and cannot instantiate the HMAC-SHA256 algorithm.", err)); } catch (NoSuchAlgorithmException err) { throw logger.logExceptionAsError( new IllegalArgumentException("HMAC-SHA256 MAC algorithm cannot be instantiated.", err)); } this.endpoint = credential.getBaseUri(); - - // Clear TokenCredential in favor of connection string credential - this.tokenCredential = null; return this; } @@ -272,9 +273,6 @@ public ConfigurationClientBuilder credential(TokenCredential tokenCredential) { // token credential can not be null value Objects.requireNonNull(tokenCredential); this.tokenCredential = tokenCredential; - - // Clear connection string based credential in favor of TokenCredential - this.credential = null; return this; } From 34c113d4b9aa1d71467b9731b7f54194df711720 Mon Sep 17 00:00:00 2001 From: shafang Date: Mon, 6 Jan 2020 09:37:41 -0800 Subject: [PATCH 2/4] split null pointer exception and illegal argument exception --- .../appconfiguration/ConfigurationClientBuilder.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java index 3410a9c09d78..0c4b90eb290f 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java @@ -239,13 +239,16 @@ public ConfigurationClientBuilder endpoint(String endpoint) { * @param connectionString Connection string in the format "endpoint={endpoint_value};id={id_value}; * secret={secret_value}" * @return The updated ConfigurationClientBuilder object. - * @throws IllegalArgumentException if {@code connectionString} is null or an empty string. Or the secret is - * invalid and cannot instantiate HMAC-SHA256 MAC algorithm. + * @throws NullPointerException If {@code connectionString} is {@code null}. + * @throws IllegalArgumentException if {@code connectionString} is an empty string. Or the secret is invalid and + * cannot instantiate HMAC-SHA256 MAC algorithm. */ public ConfigurationClientBuilder connectionString(String connectionString) { + Objects.requireNonNull(connectionString, "'connectionString' cannot be null."); + if (CoreUtils.isNullOrEmpty(connectionString)) { throw logger.logExceptionAsError( - new IllegalArgumentException("'connectionString' cannot be null or an empty string.")); + new IllegalArgumentException("'connectionString' cannot be an empty string.")); } try { From ade8a07b911381cb09e1d21464662b54dd7be0d6 Mon Sep 17 00:00:00 2001 From: shafang Date: Mon, 6 Jan 2020 09:48:25 -0800 Subject: [PATCH 3/4] use isEmpty() instead --- .../azure/data/appconfiguration/ConfigurationClientBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java index 0c4b90eb290f..706c59cbdf58 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java @@ -246,7 +246,7 @@ public ConfigurationClientBuilder endpoint(String endpoint) { public ConfigurationClientBuilder connectionString(String connectionString) { Objects.requireNonNull(connectionString, "'connectionString' cannot be null."); - if (CoreUtils.isNullOrEmpty(connectionString)) { + if (connectionString.isEmpty()) { throw logger.logExceptionAsError( new IllegalArgumentException("'connectionString' cannot be an empty string.")); } From fef3833f61d0d525d98e1eb63addce110e15cb8d Mon Sep 17 00:00:00 2001 From: shafang Date: Mon, 6 Jan 2020 09:55:50 -0800 Subject: [PATCH 4/4] wording --- .../data/appconfiguration/ConfigurationClientBuilder.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java index 706c59cbdf58..4dd6efae1079 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java +++ b/sdk/appconfiguration/azure-data-appconfiguration/src/main/java/com/azure/data/appconfiguration/ConfigurationClientBuilder.java @@ -240,8 +240,8 @@ public ConfigurationClientBuilder endpoint(String endpoint) { * secret={secret_value}" * @return The updated ConfigurationClientBuilder object. * @throws NullPointerException If {@code connectionString} is {@code null}. - * @throws IllegalArgumentException if {@code connectionString} is an empty string. Or the secret is invalid and - * cannot instantiate HMAC-SHA256 MAC algorithm. + * @throws IllegalArgumentException if {@code connectionString} is an empty string, the {@code connectionString} + * secret is invalid, or the HMAC-SHA256 MAC algorithm cannot be instantiated. */ public ConfigurationClientBuilder connectionString(String connectionString) { Objects.requireNonNull(connectionString, "'connectionString' cannot be null."); @@ -255,7 +255,8 @@ public ConfigurationClientBuilder connectionString(String connectionString) { this.credential = new ConfigurationClientCredentials(connectionString); } catch (InvalidKeyException err) { throw logger.logExceptionAsError(new IllegalArgumentException( - "The secret is invalid and cannot instantiate the HMAC-SHA256 algorithm.", err)); + "The secret contained within the connection string is invalid and cannot instantiate the HMAC-SHA256" + + " algorithm.", err)); } catch (NoSuchAlgorithmException err) { throw logger.logExceptionAsError( new IllegalArgumentException("HMAC-SHA256 MAC algorithm cannot be instantiated.", err));