Skip to content

Commit 99ef9f5

Browse files
committed
Avoid actually setting unlimited value in policy
1 parent e537c77 commit 99ef9f5

File tree

4 files changed

+9
-5
lines changed

4 files changed

+9
-5
lines changed

src/NServiceBus.Transport.RabbitMQ.Tests/BrokerVerifierTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ public async Task ValidateDeliveryLimit_Should_Set_Delivery_Limit_Policy()
4949
for (int i = 0; i < attempts; i++)
5050
{
5151
var queue = await managementClient.GetQueue(queueName);
52+
var deliveryLimit = queue.GetDeliveryLimit();
5253

53-
if (queue.DeliveryLimit == -1 && queue.AppliedPolicyName == policyName)
54+
if (deliveryLimit == Queue.BigValueInsteadOfActuallyUnlimited && queue.AppliedPolicyName == policyName)
5455
{
5556
// Policy applied successfully
5657
return;

src/NServiceBus.Transport.RabbitMQ/Administration/BrokerVerifier.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ bool ShouldOverrideDeliveryLimit(Queue queue)
171171

172172
var limit = queue.GetDeliveryLimit();
173173

174-
if (limit == -1)
174+
if (limit is Queue.UnlimitedDeliveryLimitIndicatorValue or Queue.BigValueInsteadOfActuallyUnlimited)
175175
{
176176
return false;
177177
}
@@ -201,7 +201,7 @@ async Task SetDeliveryLimitViaPolicy(Queue queue, CancellationToken cancellation
201201
var policy = new Policy
202202
{
203203
ApplyTo = PolicyTarget.QuorumQueues,
204-
Definition = new PolicyDefinition { DeliveryLimit = -1 },
204+
Definition = new PolicyDefinition { DeliveryLimit = Queue.BigValueInsteadOfActuallyUnlimited },
205205
Pattern = queue.Name,
206206
Priority = 0
207207
};

src/NServiceBus.Transport.RabbitMQ/Administration/ManagementApi/Converters/DeliveryLimitConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public override int Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSeri
2020

2121
if (string.Equals(value, "unlimited", StringComparison.OrdinalIgnoreCase))
2222
{
23-
return -1;
23+
return Queue.UnlimitedDeliveryLimitIndicatorValue;
2424
}
2525

2626
throw new JsonException($"Unexpected string value for delivery limit: {value}");

src/NServiceBus.Transport.RabbitMQ/Administration/ManagementApi/Models/Queue.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ public int GetDeliveryLimit()
6767
limit = 0;
6868
}
6969

70-
return limit ?? -1;
70+
return limit ?? UnlimitedDeliveryLimitIndicatorValue;
7171
}
72+
73+
public const int UnlimitedDeliveryLimitIndicatorValue = -1_000;
74+
public const int BigValueInsteadOfActuallyUnlimited = 100_000;
7275
}

0 commit comments

Comments
 (0)