diff --git a/src/SharpPulsar.Test.API/Schema/AvroSchemaTest.cs b/src/SharpPulsar.Test.API/Schema/AvroSchemaTest.cs index 647ae7ab..6a9706de 100644 --- a/src/SharpPulsar.Test.API/Schema/AvroSchemaTest.cs +++ b/src/SharpPulsar.Test.API/Schema/AvroSchemaTest.cs @@ -33,15 +33,15 @@ public class AvroSchemaTest { private class DefaultStruct { - public int Field1 { get; set; } - public string Field2 { get; set; } + public int? Field1 { get; set; } + public string? Field2 { get; set; } public long? Field3 { get; set; } } private class StructWithAnnotations { - public int Field1 { get; set; } - public string Field2 { get; set; } + public int? Field1 { get; set; } + public string? Field2 { get; set; } public long? Field3 { get; set; } } @@ -53,10 +53,11 @@ private class SchemaLogicalType : IEquatable public long TimeMillis { get; set; } public long TimestampMicros { get; set; } public long TimeMicros { get; set; } - public bool Equals(SchemaLogicalType other) + public bool Equals(SchemaLogicalType? other) { - if (Decimal == other.Decimal && Date == other.Date && TimestampMillis == other.TimestampMillis - && TimeMillis == other.TimeMillis && TimestampMicros == other.TimestampMicros && TimeMicros == other.TimeMicros) + if (Decimal == other?.Decimal && Date == other?.Date && TimestampMillis == other?.TimestampMillis + && TimeMillis == other?.TimeMillis && TimestampMicros == other?.TimestampMicros + && TimeMicros == other?.TimeMicros) return true; return false; } @@ -151,9 +152,9 @@ public class Bar : IEquatable { public bool Field1 { get; set; } - public bool Equals(Bar other) + public bool Equals(Bar? other) { - if (Field1 == other.Field1) + if (Field1 == other?.Field1) return true; return false; } @@ -162,19 +163,20 @@ public bool Equals(Bar other) public class Foo : IEquatable { public Color Color { get; set; } - public string Field1 { get; set; } - public string Field2 { get; set; } - public string Field3 { get; set; } - public Bar Field4 { get; set; } - public string Field5 { get; set; } + public string? Field1 { get; set; } + public string? Field2 { get; set; } + public string? Field3 { get; set; } + public Bar? Field4 { get; set; } + public string? Field5 { get; set; } - public bool Equals(Foo other) + public bool Equals(Foo? other) { - if (Field1 == other.Field1 && Field2 == other.Field2 && Field3 == other.Field3 - && Field4?.Field1 == other.Field4?.Field1 && Field5 == other.Field5) + if (Field1 == other?.Field1 && Field2 == other?.Field2 && Field3 == other?.Field3 + && Field4?.Field1 == other?.Field4?.Field1 && Field5 == other?.Field5) return true; return false; } + } [Serializable] public enum Color @@ -189,10 +191,10 @@ public class LogicalMessage : ISpecificRecord public DateTime CreatedTime { get; set; } public AvroDecimal Size { get; set; } - public string DayOfWeek { get; set; } + public required string DayOfWeek { get; set; } [Ignore] - public Avro.Schema Schema { get; set; } + public Avro.Schema? Schema { get; set; } public object Get(int fieldPos) { diff --git a/src/SharpPulsar.Test.API/SchemaTestUtils.cs b/src/SharpPulsar.Test.API/SchemaTestUtils.cs index 8d639faa..6adf8e69 100644 --- a/src/SharpPulsar.Test.API/SchemaTestUtils.cs +++ b/src/SharpPulsar.Test.API/SchemaTestUtils.cs @@ -29,19 +29,19 @@ public class SchemaTestUtils public class Foo : IEquatable { - public string Field1 { get; set; } - public string Field2 { get; set; } + public string? Field1 { get; set; } + public string? Field2 { get; set; } public int Field3 { get; set; } - public Bar Field4 { get; set; } + public Bar? Field4 { get; set; } public Color Color { get; set; } - public string FieldUnableNull { get; set; } - public bool Equals(Foo other) + public string? FieldUnableNull { get; set; } + public bool Equals(Foo? other) { - if (Field1 == other.Field1 && Field2 == other.Field2 && Field3 == other.Field3 - && Field4?.Field1 == other.Field4?.Field1 && Color == other.Color && FieldUnableNull == other.FieldUnableNull) + if (Field1 == other?.Field1 && Field2 == other?.Field2 && Field3 == other?.Field3 + && Field4?.Field1 == other?.Field4?.Field1 && Color == other?.Color && FieldUnableNull == other?.FieldUnableNull) return true; return false; } @@ -50,11 +50,11 @@ public bool Equals(Foo other) [Serializable] public class FooV2 : IEquatable { - public string Field1 { get; set; } + public string? Field1 { get; set; } public int Field3 { get; set; } - public bool Equals(FooV2 other) + public bool Equals(FooV2? other) { - return Field1 == other.Field1 && Field3 == other.Field3; + return Field1 == other?.Field1 && Field3 == other?.Field3; } } @@ -64,9 +64,9 @@ public class Bar : IEquatable { public bool Field1 { get; set; } - public bool Equals(Bar other) + public bool Equals(Bar? other) { - if (Field1 == other.Field1) + if (Field1 == other?.Field1) return true; return false; } @@ -75,25 +75,25 @@ public bool Equals(Bar other) public class NestedBar { public bool Field1 { get; set; } - public Bar Nested { get; set; } + public Bar? Nested { get; set; } } public class NestedBarList { public bool Field1 { get; set; } - public IList List { get; set; } + public IList? List { get; set; } } public class DerivedFoo : Foo, IEquatable { - public string Field5 { get; set; } + public string? Field5 { get; set; } public int Field6 { get; set; } - public Foo Foo { get; set; } - public bool Equals(DerivedFoo other) + public Foo? Foo { get; set; } + public bool Equals(DerivedFoo? other) { - return Field5 == other.Field5 && Field6 == other.Field6 && Foo == other.Foo; + return Field5 == other?.Field5 && Field6 == other?.Field6 && Foo == other.Foo; } } @@ -105,10 +105,10 @@ public enum Color public class DerivedDerivedFoo : DerivedFoo { - public string Field7 { get; set; } + public string? Field7 { get; set; } public int Field8 { get; set; } - public DerivedFoo DerivedFoo { get; set; } - public Foo Foo2 { get; set; } + public DerivedFoo? DerivedFoo { get; set; } + public Foo? Foo2 { get; set; } } public const string SchemaAvroNotAllowNull = @"{""type"":""record"",""name"":""Foo"",""namespace"":""org.apache.pulsar.client.impl.schema.SchemaTestUtils"",""fields"":[{""name"":""field1"",""type"":[""null"",""string""]," + @"""default"":null},{""name"":""field2"",""type"":[""null"",""string""],""default"":null},{""name"":""field3"",""type"":""int""},{""name"":""field4"",""type"":[""null"",{""type"":" + @"""record"",""name"":""Bar"",""fields"":[{""name"":""field1"",""type"":""boolean""}]}],""default"":null},{""name"":""color"",""type"":[""null"",{""type"":""enum"",""name"":""Color""," + @"""symbols"":[""RED"",""BLUE""]}],""default"":null},{""name"":""fieldUnableNull"",""type"":""string"",""default"":""defaultValue""}]}"; diff --git a/src/SharpPulsar.Test.Token/TokenTests.cs b/src/SharpPulsar.Test.Token/TokenTests.cs index e46a5970..4acdc02c 100644 --- a/src/SharpPulsar.Test.Token/TokenTests.cs +++ b/src/SharpPulsar.Test.Token/TokenTests.cs @@ -17,7 +17,7 @@ public class TokenTests public TokenTests(ITestOutputHelper output, PulsarTokenFixture fixture) { _output = output; - _client = fixture.PulsarSystem.NewClient(fixture.ConfigBuilder).AsTask().GetAwaiter().GetResult(); + _client = fixture.PulsarSystem?.NewClient(fixture.ConfigBuilder).AsTask().GetAwaiter().GetResult()!; _topic = $"persistent://public/default/token-{Guid.NewGuid()}"; } diff --git a/src/SharpPulsar.TestContainer/PulsarFixture.cs b/src/SharpPulsar.TestContainer/PulsarFixture.cs index 4e370c1d..2edf6a35 100644 --- a/src/SharpPulsar.TestContainer/PulsarFixture.cs +++ b/src/SharpPulsar.TestContainer/PulsarFixture.cs @@ -8,13 +8,13 @@ namespace SharpPulsar.TestContainer { public class PulsarFixture //: IAsyncLifetime { - public PulsarSystem System; + public PulsarSystem? System; private readonly IConfiguration _configuration; - public PulsarClientConfigBuilder ConfigBuilder; - public ClientConfigurationData ClientConfigurationData; + public PulsarClientConfigBuilder? ConfigBuilder; + public ClientConfigurationData? ClientConfigurationData; public PulsarFixture() { - var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!; _configuration = GetIConfigurationRoot(path); SetupSystem(); } @@ -37,13 +37,13 @@ public virtual void SetupSystem(string? service = null, string? web = null) var authPluginClassName = clienConfigSetting.GetSection("authPluginClassName").Value; var authParamsString = clienConfigSetting.GetSection("authParamsString").Value; var authCertPath = clienConfigSetting.GetSection("authCertPath").Value; - var connectionsPerBroker = int.Parse(clienConfigSetting.GetSection("connections-per-broker").Value); - var statsInterval = TimeSpan.Parse(clienConfigSetting.GetSection("stats-interval").Value); - var operationTime = int.Parse(clienConfigSetting.GetSection("operationTime").Value); - var allowTlsInsecureConnection = bool.Parse(clienConfigSetting.GetSection("allowTlsInsecureConnection").Value); - var enableTls = bool.Parse(clienConfigSetting.GetSection("enableTls").Value); - var enableTxn = bool.Parse(clienConfigSetting.GetSection("enableTransaction").Value); - var dedicatedConnection = bool.Parse(clienConfigSetting.GetSection("userDedicatedConnection").Value); + var connectionsPerBroker = int.Parse(clienConfigSetting.GetSection("connections-per-broker").Value!); + var statsInterval = TimeSpan.Parse(clienConfigSetting.GetSection("stats-interval").Value!); + var operationTime = int.Parse(clienConfigSetting.GetSection("operationTime").Value!); + var allowTlsInsecureConnection = bool.Parse(clienConfigSetting.GetSection("allowTlsInsecureConnection").Value!); + var enableTls = bool.Parse(clienConfigSetting.GetSection("enableTls").Value!); + var enableTxn = bool.Parse(clienConfigSetting.GetSection("enableTransaction").Value!); + var dedicatedConnection = bool.Parse(clienConfigSetting.GetSection("userDedicatedConnection").Value!); client.EnableTransaction(enableTxn); diff --git a/src/SharpPulsar.TestContainer/PulsarOAuthFixture.cs b/src/SharpPulsar.TestContainer/PulsarOAuthFixture.cs index f9a87c47..a831ab90 100644 --- a/src/SharpPulsar.TestContainer/PulsarOAuthFixture.cs +++ b/src/SharpPulsar.TestContainer/PulsarOAuthFixture.cs @@ -1,5 +1,6 @@ using System.Reflection; using System.Security.Cryptography.X509Certificates; +using Ductus.FluentDocker.Commands; using Microsoft.Extensions.Configuration; using SharpPulsar.Auth.OAuth2; using SharpPulsar.Builder; @@ -11,14 +12,14 @@ namespace SharpPulsar.TestContainer { public class PulsarOAuthFixture : IAsyncLifetime { - public PulsarClient Client; - public PulsarSystem PulsarSystem; + public PulsarClient? Client; + public PulsarSystem? PulsarSystem; private readonly IConfiguration _configuration; - public ClientConfigurationData ClientConfigurationData; + public ClientConfigurationData? ClientConfigurationData; public PulsarOAuthFixture() { - var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!; _configuration = GetIConfigurationRoot(path); Container = BuildContainer(); } @@ -62,13 +63,13 @@ public virtual async ValueTask SetupSystem(string? service = null, string? web = var authPluginClassName = clienConfigSetting.GetSection("authPluginClassName").Value; var authParamsString = clienConfigSetting.GetSection("authParamsString").Value; var authCertPath = clienConfigSetting.GetSection("authCertPath").Value; - var connectionsPerBroker = int.Parse(clienConfigSetting.GetSection("connections-per-broker").Value); - var statsInterval = TimeSpan.Parse(clienConfigSetting.GetSection("stats-interval").Value); - var operationTime = int.Parse(clienConfigSetting.GetSection("operationTime").Value); - var allowTlsInsecureConnection = bool.Parse(clienConfigSetting.GetSection("allowTlsInsecureConnection").Value); - var enableTls = bool.Parse(clienConfigSetting.GetSection("enableTls").Value); - var enableTxn = bool.Parse(clienConfigSetting.GetSection("enableTransaction").Value); - var dedicatedConnection = bool.Parse(clienConfigSetting.GetSection("userDedicatedConnection").Value); + var connectionsPerBroker = int.Parse(clienConfigSetting.GetSection("connections-per-broker").Value!); + var statsInterval = TimeSpan.Parse(clienConfigSetting.GetSection("stats-interval").Value!); + var operationTime = int.Parse(clienConfigSetting.GetSection("operationTime").Value!); + var allowTlsInsecureConnection = bool.Parse(clienConfigSetting.GetSection("allowTlsInsecureConnection").Value!); + var enableTls = bool.Parse(clienConfigSetting.GetSection("enableTls").Value!); + var enableTxn = bool.Parse(clienConfigSetting.GetSection("enableTransaction").Value!); + var dedicatedConnection = bool.Parse(clienConfigSetting.GetSection("userDedicatedConnection").Value!); client.EnableTransaction(enableTxn); @@ -137,7 +138,7 @@ private string GetConfigFilePath() { var configFolderName = "Oauth2Files"; var privateKeyFileName = "o-r7y4o-eabanonu.json"; - var startup = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var startup = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!; var indexOfConfigDir = startup.IndexOf(startup, StringComparison.Ordinal); var examplesFolder = startup.Substring(0, startup.Length - indexOfConfigDir); var configFolder = Path.Combine(examplesFolder, configFolderName); diff --git a/src/SharpPulsar.TestContainer/PulsarTokenFixture.cs b/src/SharpPulsar.TestContainer/PulsarTokenFixture.cs index 3ef937f4..32ceadcd 100644 --- a/src/SharpPulsar.TestContainer/PulsarTokenFixture.cs +++ b/src/SharpPulsar.TestContainer/PulsarTokenFixture.cs @@ -18,16 +18,16 @@ public class PulsarTokenFixture : IAsyncLifetime private const string SecretKeyPath = "/pulsar/secret.key"; private const string UserName = "test-user"; private const int Port = 6650; - public PulsarSystem PulsarSystem; - public ClientConfigurationData ClientConfigurationData; - public PulsarClientConfigBuilder ConfigBuilder; - public string Token; + public PulsarSystem? PulsarSystem; + public ClientConfigurationData? ClientConfigurationData; + public PulsarClientConfigBuilder? ConfigBuilder; + public string? Token; private readonly IConfiguration _configuration; private readonly IMessageSink _messageSink; private readonly IContainerService _cluster; public PulsarTokenFixture(IMessageSink messageSink) { - var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)!; _configuration = GetIConfigurationRoot(path); _messageSink = messageSink; @@ -97,13 +97,13 @@ public virtual void SetupSystem() var authPluginClassName = clienConfigSetting.GetSection("authPluginClassName").Value; var authParamsString = clienConfigSetting.GetSection("authParamsString").Value; var authCertPath = clienConfigSetting.GetSection("authCertPath").Value; - var connectionsPerBroker = int.Parse(clienConfigSetting.GetSection("connections-per-broker").Value); - var statsInterval = TimeSpan.Parse(clienConfigSetting.GetSection("stats-interval").Value); - var operationTime = int.Parse(clienConfigSetting.GetSection("operationTime").Value); - var allowTlsInsecureConnection = bool.Parse(clienConfigSetting.GetSection("allowTlsInsecureConnection").Value); - var enableTls = bool.Parse(clienConfigSetting.GetSection("enableTls").Value); - var enableTxn = bool.Parse(clienConfigSetting.GetSection("enableTransaction").Value); - var dedicatedConnection = bool.Parse(clienConfigSetting.GetSection("userDedicatedConnection").Value); + var connectionsPerBroker = int.Parse(clienConfigSetting.GetSection("connections-per-broker").Value!); + var statsInterval = TimeSpan.Parse(clienConfigSetting.GetSection("stats-interval").Value!); + var operationTime = int.Parse(clienConfigSetting.GetSection("operationTime").Value!); + var allowTlsInsecureConnection = bool.Parse(clienConfigSetting.GetSection("allowTlsInsecureConnection").Value!); + var enableTls = bool.Parse(clienConfigSetting.GetSection("enableTls").Value!); + var enableTxn = bool.Parse(clienConfigSetting.GetSection("enableTransaction").Value!); + var dedicatedConnection = bool.Parse(clienConfigSetting.GetSection("userDedicatedConnection").Value!); client.EnableTransaction(enableTxn); diff --git a/src/SharpPulsar/ClientCnx.cs b/src/SharpPulsar/ClientCnx.cs index 5b6de4ed..46070b08 100644 --- a/src/SharpPulsar/ClientCnx.cs +++ b/src/SharpPulsar/ClientCnx.cs @@ -67,10 +67,9 @@ internal sealed class ClientCnx : ReceiveActor, IWithUnboundedStash private ICancelable _timeoutTask; - private readonly ICancelable _sendPing; + private readonly ICancelable _sendPing = default; private readonly IActorRef _parent; private readonly IScheduler _scheduler; - private IDisposable _subscriber; // Added for mutual authentication. private IAuthenticationDataProvider _authenticationDataProvider; diff --git a/src/SharpPulsar/ConsumerActor.cs b/src/SharpPulsar/ConsumerActor.cs index 73773828..888c6e65 100644 --- a/src/SharpPulsar/ConsumerActor.cs +++ b/src/SharpPulsar/ConsumerActor.cs @@ -116,7 +116,7 @@ internal class ConsumerActor : ConsumerActorBase private readonly bool _readCompacted; private readonly bool _resetIncludeHead; - private readonly bool _poolMessages = false; + //private readonly bool _poolMessages = false; private readonly ActorSystem _actorSystem; diff --git a/src/SharpPulsar/Exceptions/PulsarClientException.cs b/src/SharpPulsar/Exceptions/PulsarClientException.cs index 82996d57..2a4c9a29 100644 --- a/src/SharpPulsar/Exceptions/PulsarClientException.cs +++ b/src/SharpPulsar/Exceptions/PulsarClientException.cs @@ -1266,9 +1266,6 @@ public RuntimeException(string message, Exception innerException) : base(message { } - protected RuntimeException(SerializationInfo info, StreamingContext context) : base(info, context) - { - } } } } \ No newline at end of file diff --git a/src/SharpPulsar/MessageRouterBase.cs b/src/SharpPulsar/MessageRouterBase.cs index 7a4adcb9..07e27cb5 100644 --- a/src/SharpPulsar/MessageRouterBase.cs +++ b/src/SharpPulsar/MessageRouterBase.cs @@ -10,7 +10,7 @@ internal abstract class MessageRouterBase : IMessageRouter public abstract int ChoosePartition(IMessage msg, TopicMetadata metadata); public abstract int ChoosePartition(IMessage msg); - protected internal readonly IHash Hash; + protected internal readonly IHash Hash = default; internal MessageRouterBase(HashingScheme hashingScheme) { diff --git a/src/SharpPulsar/ServiceProvider/ControlledClusterFailoverActor.cs b/src/SharpPulsar/ServiceProvider/ControlledClusterFailoverActor.cs index 444121d0..58ef99fd 100644 --- a/src/SharpPulsar/ServiceProvider/ControlledClusterFailoverActor.cs +++ b/src/SharpPulsar/ServiceProvider/ControlledClusterFailoverActor.cs @@ -77,6 +77,7 @@ private HttpClient BuildHttpClient() var handler = new HttpClientHandler { AllowAutoRedirect = true, + UseProxy = true, MaxAutomaticRedirections = DefaultMaxRedirects }; var client = new HttpClient(handler) @@ -119,6 +120,7 @@ public virtual void Initialize(PulsarClient client) pulsarClient.UpdateTlsTrustCertsFilePath(tlsTrustCertsFilePath); } pulsarClient.UpdateServiceUrl(ServiceUrl); + pulsarClient.ReloadLookUp(); _currentPulsarServiceUrl = ServiceUrl; currentControlledConfiguration = controlledConfiguration; } @@ -154,11 +156,11 @@ protected internal virtual ControlledConfiguration FetchControlledConfiguration( protected internal class ControlledConfiguration { - internal string ServiceUrl; - internal string TlsTrustCertsFilePath; + internal string ServiceUrl = default; + internal string TlsTrustCertsFilePath = default; - internal string AuthPluginClassName; - internal string AuthParamsString; + internal string AuthPluginClassName = default; + internal string AuthParamsString = default; public virtual string ToJson() { diff --git a/src/SharpPulsar/Shared/SchemaType.cs b/src/SharpPulsar/Shared/SchemaType.cs index 729ddaaf..7e249ecb 100644 --- a/src/SharpPulsar/Shared/SchemaType.cs +++ b/src/SharpPulsar/Shared/SchemaType.cs @@ -255,7 +255,7 @@ public int Value } } - [System.Obsolete] + public static SchemaType ValueOf(int Value) { switch (Value) diff --git a/src/SharpPulsar/SocketImpl/SocketClientActor.cs b/src/SharpPulsar/SocketImpl/SocketClientActor.cs index a40c52a5..154a7bb1 100644 --- a/src/SharpPulsar/SocketImpl/SocketClientActor.cs +++ b/src/SharpPulsar/SocketImpl/SocketClientActor.cs @@ -45,9 +45,6 @@ internal sealed class SocketClientActor : ReceiveActor private ChunkingPipeline _pipeline; - public event Action OnConnect; - public event Action OnDisconnect; - private PipeReader _pipeReader; private PipeWriter _pipeWriter; diff --git a/src/SharpPulsar/Table/TableViewActor.cs b/src/SharpPulsar/Table/TableViewActor.cs index db746003..1240fe4e 100644 --- a/src/SharpPulsar/Table/TableViewActor.cs +++ b/src/SharpPulsar/Table/TableViewActor.cs @@ -49,7 +49,6 @@ internal class TableViewActor : ReceiveActor private readonly IList> _listeners; private IUntypedActorContext _context; private ILoggingAdapter _log; - private ICancelable _partitionChecker; private readonly IActorRef _self; private IActorRef _replyTo; private bool _isPersistentTopic; diff --git a/src/SharpPulsar/Tracker/UnAckedMessageRedeliveryTracker.cs b/src/SharpPulsar/Tracker/UnAckedMessageRedeliveryTracker.cs index 8e984fb4..c1e47d48 100644 --- a/src/SharpPulsar/Tracker/UnAckedMessageRedeliveryTracker.cs +++ b/src/SharpPulsar/Tracker/UnAckedMessageRedeliveryTracker.cs @@ -30,11 +30,11 @@ namespace SharpPulsar.Tracker internal class UnAckedMessageRedeliveryTracker : UnAckedMessageTracker { - private readonly ILoggingAdapter _log; + private readonly ILoggingAdapter _log = default; private ICancelable _timeout; protected internal readonly Dictionary> RedeliveryMessageIdPartitionMap; protected internal readonly ArrayDeque> RedeliveryTimePartitions; - private readonly IScheduler _scheduler; + private readonly IScheduler _scheduler = default; protected internal readonly Dictionary AckTimeoutMessages; private readonly IRedeliveryBackoff _ackTimeoutRedeliveryBackoff; private UnackMessageIdWrapper _unackMessageIdWrapper; diff --git a/src/SharpPulsar/TransactionImpl/TransactionActor.cs b/src/SharpPulsar/TransactionImpl/TransactionActor.cs index 0c9f7911..9446762c 100644 --- a/src/SharpPulsar/TransactionImpl/TransactionActor.cs +++ b/src/SharpPulsar/TransactionImpl/TransactionActor.cs @@ -58,7 +58,7 @@ internal class TransactionActor : ReceiveActor, IWithUnboundedStash private readonly Dictionary> _registerSubscriptionMap; private IActorRef _tcClient; //TransactionCoordinatorClientImpl private readonly List _sendList; - private ICancelable _timeout = null; + //private ICancelable _timeout = null; public IStash Stash { get; set; } private readonly TxnID _txnId; private TaskCompletionSource _opFuture;