From 6d3206be5bc6bacc38dc6a04b1d5a47ea6a053f0 Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Sun, 17 Feb 2019 22:47:19 -0800 Subject: [PATCH 1/2] Clear expiredMessageSessions when reciever is created for the same session --- packages/@azure/servicebus/data-plane/lib/queueClient.ts | 4 +++- .../@azure/servicebus/data-plane/lib/subscriptionClient.ts | 4 +++- .../servicebus/data-plane/test/renewLockSessions.spec.ts | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/@azure/servicebus/data-plane/lib/queueClient.ts b/packages/@azure/servicebus/data-plane/lib/queueClient.ts index 42f434898cd4..b9bcf53e5661 100644 --- a/packages/@azure/servicebus/data-plane/lib/queueClient.ts +++ b/packages/@azure/servicebus/data-plane/lib/queueClient.ts @@ -177,10 +177,12 @@ export class QueueClient extends Client { } before using "getSessionReceiver" to create a new one for the same sessionId` ); } - delete this._context.expiredMessageSessions[options.sessionId]; } this._context.isSessionEnabled = true; const messageSession = await MessageSession.create(this._context, options); + if (messageSession.sessionId) { + delete this._context.expiredMessageSessions[messageSession.sessionId]; + } return new SessionReceiver(this._context, messageSession); } } diff --git a/packages/@azure/servicebus/data-plane/lib/subscriptionClient.ts b/packages/@azure/servicebus/data-plane/lib/subscriptionClient.ts index 5d940b8af83c..b1eacf6dda73 100644 --- a/packages/@azure/servicebus/data-plane/lib/subscriptionClient.ts +++ b/packages/@azure/servicebus/data-plane/lib/subscriptionClient.ts @@ -219,10 +219,12 @@ export class SubscriptionClient extends Client { } before using "getSessionReceiver" to create a new one for the same sessionId` ); } - delete this._context.expiredMessageSessions[options.sessionId]; } this._context.isSessionEnabled = true; const messageSession = await MessageSession.create(this._context, options); + if (messageSession.sessionId) { + delete this._context.expiredMessageSessions[messageSession.sessionId]; + } return new SessionReceiver(this._context, messageSession); } diff --git a/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts b/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts index c0d01636a65c..34d05af41556 100644 --- a/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts +++ b/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts @@ -440,8 +440,8 @@ async function testBatchReceiverManualLockRenewalErrorOnLockExpiry( should.equal(errorWasThrown, true, "Error thrown flag must be true"); - // Clean up any left over messages - sessionClient = await receiverClient.getSessionReceiver({ sessionId: testSessionId1 }); + // Subsequent receivers for the same session to work as expected. + sessionClient = await receiverClient.getSessionReceiver(); const unprocessedMsgs = await sessionClient.receiveBatch(1); await unprocessedMsgs[0].complete(); } From 73bcb660c698e4066729c8a470732a554f7de281 Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Sun, 17 Feb 2019 22:52:34 -0800 Subject: [PATCH 2/2] Update comment --- .../@azure/servicebus/data-plane/test/renewLockSessions.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts b/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts index 34d05af41556..b71fa4344119 100644 --- a/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts +++ b/packages/@azure/servicebus/data-plane/test/renewLockSessions.spec.ts @@ -440,7 +440,7 @@ async function testBatchReceiverManualLockRenewalErrorOnLockExpiry( should.equal(errorWasThrown, true, "Error thrown flag must be true"); - // Subsequent receivers for the same session to work as expected. + // Subsequent receivers for the same session should work as expected. sessionClient = await receiverClient.getSessionReceiver(); const unprocessedMsgs = await sessionClient.receiveBatch(1); await unprocessedMsgs[0].complete();