Fix validation of empty segment IDs in markUsed
and markUnused
APIs
#16145
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Before this patch,
isValid()
treated empty segment IDs inconsistently. Consider the following scenarios with each parameter tomarkUsed
andmarkUnused
APIs and their outcomes:Note that in scenario 2, empty segment IDs are treated as the existence of the parameter. On the other hand, in scenario 4, empty segment IDs are treated as the absence of the parameter, which is confusing from an API user's perspective.
Fix:
With this patch, empty segment IDs are treated the same as null, indicating the absence of the parameter. So the outcome of scenario 2 will be Valid.
Added unit tests for the missing scenarios and updated the expectations of a couple of existing unit tests.
Release note
Fixed a bug in the
markUsed
andmarkUnused
APIs where an empty set of segment IDs would be inconsistently treated as null or non-null in different scenarios.This PR has: