Skip to content

SharpConnector 4.0.1

Latest

Choose a tag to compare

@engineering87 engineering87 released this 11 Mar 13:53
· 9 commits to develop since this release

This patch release focuses on stability, thread-safety improvements, and significantly expanded test coverage.

Summary

v4.0.1 introduces several bug fixes across Couchbase and Memcached integrations, improves resource management for some providers, and expands the automated test suite to ensure higher reliability and maintainability.

All changes are fully backward-compatible.

Bug Fixes

  • CouchbaseAccess

    • Fixed a race condition in GetBucketAsync() where concurrent calls could initialize the bucket multiple times.
    • Introduced SemaphoreSlim with double-check locking to ensure safe initialization.
  • CouchbaseOperations

    • Removed incorrect .ConfigureAwait(false) chaining before .GetAwaiter().GetResult() in synchronous Insert methods.
  • MemcachedOperations

    • Fixed InsertAsync (without expiration) not propagating the CancellationToken to the wrapper.
    • GetAllAsync now throws NotSupportedException directly instead of routing through the wrapper.
  • ConnectorEntity

    • Consolidated duplicated constructor logic: (key, payload) now delegates to (key, payload, null).
    • Improved argument validation:
      • ArgumentNullException for null payload
      • ArgumentException with nameof for empty keys
    • Fully backward-compatible behavior maintained.

Improvements

  • RedisAccess / DynamoDbAccess

    • Added missing GC.SuppressFinalize(this) in Dispose() to align with other IDisposable implementations in the project.
  • LiteDbWrapper

    • Corrected misleading XML documentation on Query and QueryAsync methods (previously indicated as "not supported").

Dependencies

Updated project dependencies to the latest stable package versions.

Breaking Changes

None.
All changes are fully backward-compatible.