Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrap Tables implementation Exception with a public type. #20275

Merged
merged 14 commits into from
Apr 2, 2021
Merged

Wrap Tables implementation Exception with a public type. #20275

merged 14 commits into from
Apr 2, 2021

Conversation

vcolin7
Copy link
Member

@vcolin7 vcolin7 commented Mar 31, 2021

Changes are separated by commit:

  • Added TableServiceErrorException and TableServiceError to the public models package. (0738c80)
  • Added utility methods to map the implementation exception to the public one. (c90904f)
  • Updated all public types to reference the public TableServiceErrorException instead of the one in the implementation package. (4d2e624). Fix: (2a52507)
  • Updated and reformatted Javadoc of clients and batch classes. Reformatted some code as well. (a0281ba)
  • Updated client builder to throw IllegalArgumentException instead of NullPointerException when given arguments are incorrect or null. Also changed log level of when the httpClient or pipeline are set to null from INFO to WARNING. (096b01d)
  • Updated TableClientBuilderTest. (b8d698e)
  • Updated CHANGELOG. (b5045a0)

NOTE: It looks like some tests failed with these new changes. I will work on that in the meantime.

…eption instead of the one in the implementation package.
…ullPointerException when given arguments are incorrect or null. Also changed log level of when the httpClient or pipeline are set to null from INFO to WARNING.
@check-enforcer
Copy link

check-enforcer bot commented Apr 1, 2021

This pull request is protected by Check Enforcer.

What is Check Enforcer?

Check Enforcer helps ensure all pull requests are covered by at least one check-run (typically an Azure Pipeline). When all check-runs associated with this pull request pass then Check Enforcer itself will pass.

Why am I getting this message?

You are getting this message because Check Enforcer did not detect any check-runs being associated with this pull request within five minutes. This may indicate that your pull request is not covered by any pipelines and so Check Enforcer is correctly blocking the pull request being merged.

What should I do now?

If the check-enforcer check-run is not passing and all other check-runs associated with this PR are passing (excluding license-cla) then you could try telling Check Enforcer to evaluate your pull request again. You can do this by adding a comment to this pull request as follows:
/check-enforcer evaluate
Typically evaulation only takes a few seconds. If you know that your pull request is not covered by a pipeline and this is expected you can override Check Enforcer using the following command:
/check-enforcer override
Note that using the override command triggers alerts so that follow-up investigations can occur (PRs still need to be approved as normal).

What if I am onboarding a new service?

Often, new services do not have validation pipelines associated with them, in order to bootstrap pipelines for a new service, you can issue the following command as a pull request comment:
/azp run prepare-pipelines
This will run a pipeline that analyzes the source tree and creates the pipelines necessary to build and validate your pull request. Once the pipeline has been created you can trigger the pipeline using the following comment:
/azp run java - [service] - ci

Comment on lines +106 to +108
throw logger.logExceptionAsError(
new IllegalArgumentException(
"'connectionString' missing required settings to derive tables service endpoint."));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be split into NPE and IllegalArgumentException as well and also look at all other places where this needs to be updated.

Copy link
Member Author

@vcolin7 vcolin7 Apr 1, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

connectionString is used to obtain the endpoint, so it would only make sense to throw an NPE if connectionString itself is null, right? If endpoint ends up being null it would be because the connection string was wither malformed or invalid.

Copy link
Member Author

@vcolin7 vcolin7 Apr 1, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moreso, the method StorageConnectionString.create() we use to parse a given connectionString will throw an IllegalArgumentException if it's null. Should we attempt to avoid that behavior and throw an NPE ourselves before calling it?

@vcolin7 vcolin7 merged commit eb82cb4 into Azure:master Apr 2, 2021
@vcolin7 vcolin7 deleted the wrap-tables-implementation-exception branch April 8, 2021 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants