Skip to content

Commit c8cbc90

Browse files
committed
CrossRegionHedging: Fixes CosmosNullReference Bug implementing recommendations
1 parent d7e62dc commit c8cbc90

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

Microsoft.Azure.Cosmos/src/Routing/AvailabilityStrategy/CrossRegionHedgingAvailabilityStrategy.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ internal override async Task<ResponseMessage> ExecuteAvailabilityStrategyAsync(
143143
request,
144144
hedgeRegions.ElementAt(requestNumber),
145145
cancellationToken,
146-
cancellationTokenSource, trace);
146+
cancellationTokenSource,
147+
trace);
147148

148149
requestTasks.Add(primaryRequest);
149150
}
@@ -262,7 +263,8 @@ private async Task<HedgingResponse> CloneAndSendAsync(
262263
clonedRequest,
263264
region,
264265
cancellationToken,
265-
cancellationTokenSource, trace);
266+
cancellationTokenSource,
267+
trace);
266268
}
267269
}
268270

@@ -271,7 +273,8 @@ private async Task<HedgingResponse> RequestSenderAndResultCheckAsync(
271273
RequestMessage request,
272274
string hedgedRegion,
273275
CancellationToken cancellationToken,
274-
CancellationTokenSource cancellationTokenSource, ITrace trace)
276+
CancellationTokenSource cancellationTokenSource,
277+
ITrace trace)
275278
{
276279
try
277280
{

Microsoft.Azure.Cosmos/tests/Microsoft.Azure.Cosmos.EmulatorTests/CosmosAvailabilityStrategyTests.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,6 @@ public async Task AvailabilityStrategyStepTests(string operation, string condito
842842

843843
[TestMethod]
844844
[TestCategory("MultiRegion")]
845-
[ExpectedException(typeof(CosmosOperationCanceledException))]
846845
public async Task AvailabilityStrategyWithCancellationTokenThrowsExceptionTest()
847846
{
848847
FaultInjectionRule responseDelay = new FaultInjectionRuleBuilder(
@@ -885,10 +884,11 @@ public async Task AvailabilityStrategyWithCancellationTokenThrowsExceptionTest()
885884
Database database = faultInjectionClient.GetDatabase(CosmosAvailabilityStrategyTests.dbName);
886885
Container container = database.GetContainer(CosmosAvailabilityStrategyTests.containerName);
887886

888-
ItemResponse<AvailabilityStrategyTestObject> ir = await container.ReadItemAsync<AvailabilityStrategyTestObject>(
889-
"testId",
890-
new PartitionKey("pk"), cancellationToken: cts.Token
891-
);
887+
CosmosOperationCanceledException cancelledException = await Assert.ThrowsExceptionAsync<CosmosOperationCanceledException>(() =>
888+
container.ReadItemAsync<AvailabilityStrategyTestObject>(
889+
"testId",
890+
new PartitionKey("pk"), cancellationToken: cts.Token
891+
));
892892

893893
}
894894

0 commit comments

Comments
 (0)