Skip to content

Commit 2b5efbe

Browse files
Merge pull request #771 from Particular/queuename-helper
Make queue name prefix addition idempotent
2 parents 965acc5 + 1b2882f commit 2b5efbe

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/NServiceBus.AmazonSQS/QueueNameHelper.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,26 @@ public static string GetSqsQueueName(string destination, TransportConfiguration
1313
throw new ArgumentNullException(nameof(destination));
1414
}
1515

16-
var s = transportConfiguration.QueueNamePrefix + destination;
16+
var queueName = !string.IsNullOrEmpty(transportConfiguration.QueueNamePrefix) &&
17+
destination.StartsWith(transportConfiguration.QueueNamePrefix, StringComparison.Ordinal) ?
18+
destination :
19+
$"{transportConfiguration.QueueNamePrefix}{destination}";
1720

18-
if (transportConfiguration.PreTruncateQueueNames && s.Length > 80)
21+
if (transportConfiguration.PreTruncateQueueNames && queueName.Length > 80)
1922
{
2023
var charsToTake = 80 - transportConfiguration.QueueNamePrefix.Length;
21-
s = transportConfiguration.QueueNamePrefix +
22-
new string(s.Reverse().Take(charsToTake).Reverse().ToArray());
24+
queueName = transportConfiguration.QueueNamePrefix +
25+
new string(queueName.Reverse().Take(charsToTake).Reverse().ToArray());
2326
}
2427

25-
if (s.Length > 80)
28+
if (queueName.Length > 80)
2629
{
2730
throw new Exception($"Address {destination} with configured prefix {transportConfiguration.QueueNamePrefix} is longer than 80 characters and therefore cannot be used to create an SQS queue. Use a shorter queue name.");
2831
}
2932

30-
var queueNameBuilder = new StringBuilder(s);
33+
var queueNameBuilder = new StringBuilder(queueName);
3134

32-
return GetSanitizedQueueName(queueNameBuilder, s);
35+
return GetSanitizedQueueName(queueNameBuilder, queueName);
3336
}
3437

3538
public static string GetSanitizedQueueName(StringBuilder queueNameBuilder, string queueName)

0 commit comments

Comments
 (0)