Skip to content

Commit 4c3a228

Browse files
committed
Improve NRT annotations and update Foundatio to 13.0.0-beta6.2
- Add [DisallowNull] to collection/connection string options properties - Use null! for poison message queue entry creation with explicit comment
1 parent a117be3 commit 4c3a228

6 files changed

Lines changed: 10 additions & 14 deletions

File tree

src/Foundatio.AWS/Foundatio.AWS.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<PackageReference Include="AWSSDK.SimpleNotificationService" Version="4.0.2.27" />
1010
<PackageReference Include="AWSSDK.SQS" Version="4.0.2.25" />
1111

12-
<PackageReference Include="Foundatio" Version="13.0.0-beta6" Condition="'$(ReferenceFoundatioSource)' == '' OR '$(ReferenceFoundatioSource)' == 'false'" />
12+
<PackageReference Include="Foundatio" Version="13.0.0-beta6.2" Condition="'$(ReferenceFoundatioSource)' == '' OR '$(ReferenceFoundatioSource)' == 'false'" />
1313
<ProjectReference Include="..\..\..\Foundatio\src\Foundatio\Foundatio.csproj" Condition="'$(ReferenceFoundatioSource)' == 'true'" />
1414
</ItemGroup>
1515
</Project>

src/Foundatio.AWS/Messaging/SQSMessageBusOptions.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,9 @@ public class SQSMessageBusOptionsBuilder : SharedMessageBusOptionsBuilder<SQSMes
9090
/// <summary>
9191
/// Sets the connection string containing AWS credentials and configuration.
9292
/// </summary>
93-
public SQSMessageBusOptionsBuilder ConnectionString(string connectionString)
93+
public SQSMessageBusOptionsBuilder ConnectionString(string? connectionString)
9494
{
95-
ArgumentException.ThrowIfNullOrWhiteSpace(connectionString);
96-
Target.ConnectionString = connectionString;
95+
Target.ConnectionString = String.IsNullOrWhiteSpace(connectionString) ? null : connectionString;
9796
return this;
9897
}
9998

src/Foundatio.AWS/Queues/SQSQueue.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,8 @@ Task<ReceiveMessageResponse> ReceiveMessageAsync()
213213
_logger.LogWarning(deserializeException, "Error deserializing message {MessageId} (receive count {ReceiveCount}), abandoning for retry",
214214
message.MessageId, message.ApproximateReceiveCount());
215215

216-
var poisonEntry = new SQSQueueEntry<T>(message, null, this);
216+
// Poison message: null! is intentional — deserialization failed, entry is immediately abandoned.
217+
var poisonEntry = new SQSQueueEntry<T>(message, null!, this);
217218
await AbandonAsync(poisonEntry).AnyContext();
218219
return null;
219220
}

src/Foundatio.AWS/Queues/SQSQueueEntry.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class SQSQueueEntry<T>
88
{
99
public Message UnderlyingMessage { get; }
1010

11-
public SQSQueueEntry(Message message, T? value, IQueue<T> queue)
11+
public SQSQueueEntry(Message message, T value, IQueue<T> queue)
1212
: base(message.MessageId, message.CorrelationId(), value, queue, message.SentTimestamp(), message.ApproximateReceiveCount())
1313
{
1414
if (message.MessageAttributes is not null)

src/Foundatio.AWS/Queues/SQSQueueOptions.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,9 @@ public class SQSQueueOptions<T> : SharedQueueOptions<T> where T : class
2828

2929
public class SQSQueueOptionsBuilder<T> : SharedQueueOptionsBuilder<T, SQSQueueOptions<T>, SQSQueueOptionsBuilder<T>> where T : class
3030
{
31-
public SQSQueueOptionsBuilder<T> ConnectionString(string connectionString)
31+
public SQSQueueOptionsBuilder<T> ConnectionString(string? connectionString)
3232
{
33-
if (string.IsNullOrEmpty(connectionString))
34-
throw new ArgumentNullException(nameof(connectionString));
35-
Target.ConnectionString = connectionString;
33+
Target.ConnectionString = string.IsNullOrEmpty(connectionString) ? null : connectionString;
3634
return this;
3735
}
3836

src/Foundatio.AWS/Storage/S3FileStorageOptions.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,9 @@ public class S3FileStorageOptions : SharedOptions
2020

2121
public class S3FileStorageOptionsBuilder : SharedOptionsBuilder<S3FileStorageOptions, S3FileStorageOptionsBuilder>
2222
{
23-
public S3FileStorageOptionsBuilder ConnectionString(string connectionString)
23+
public S3FileStorageOptionsBuilder ConnectionString(string? connectionString)
2424
{
25-
if (String.IsNullOrEmpty(connectionString))
26-
throw new ArgumentNullException(nameof(connectionString));
27-
Target.ConnectionString = connectionString;
25+
Target.ConnectionString = String.IsNullOrEmpty(connectionString) ? null : connectionString;
2826
return this;
2927
}
3028

0 commit comments

Comments
 (0)