diff --git a/src/Orleans.Runtime/Silo/SiloControl.cs b/src/Orleans.Runtime/Silo/SiloControl.cs index cc8bdb0683..5bf9c2b73e 100644 --- a/src/Orleans.Runtime/Silo/SiloControl.cs +++ b/src/Orleans.Runtime/Silo/SiloControl.cs @@ -1,3 +1,4 @@ +#nullable enable using System; using System.Collections.Generic; using System.Linq; @@ -57,7 +58,8 @@ public SiloControl( IActivationWorkingSet activationWorkingSet, IEnvironmentStatisticsProvider environmentStatisticsProvider, IOptions loadSheddingOptions, - GrainCountStatistics grainCountStatistics) + GrainCountStatistics grainCountStatistics, + GrainPropertiesResolver grainPropertiesResolver) : base(Constants.SiloControlType, localSiloDetails.SiloAddress, loggerFactory) { this.localSiloDetails = localSiloDetails; @@ -75,6 +77,7 @@ public SiloControl( this.environmentStatisticsProvider = environmentStatisticsProvider; this.loadSheddingOptions = loadSheddingOptions; _grainCountStatistics = grainCountStatistics; + this.grainPropertiesResolver = grainPropertiesResolver; } public Task Ping(string message) @@ -130,7 +133,7 @@ public Task>> GetGrainStatistics() // TODO: generic type expansion var grainTypeName = RuntimeTypeNameFormatter.Format(data.GrainInstance.GetType()); - Dictionary grains; + Dictionary? grains; int n; if (!counts.TryGetValue(grainTypeName, out grains)) { @@ -148,7 +151,7 @@ public Task>> GetGrainStatistics() .ToList()); } - public Task> GetDetailedGrainStatistics(string[] types=null) + public Task> GetDetailedGrainStatistics(string[]? types = null) { if (logger.IsEnabled(LogLevel.Debug)) logger.LogDebug("GetDetailedGrainStatistics"); var stats = new List(); @@ -178,14 +181,14 @@ public Task> GetDetailedGrainStatistics(string[] ty public Task GetSimpleGrainStatistics() { logger.LogInformation("GetSimpleGrainStatistics"); - return Task.FromResult( _grainCountStatistics.GetSimpleGrainStatistics().Select(p => + return Task.FromResult(_grainCountStatistics.GetSimpleGrainStatistics().Select(p => new SimpleGrainStatistic { SiloAddress = this.localSiloDetails.SiloAddress, GrainType = p.Key, ActivationCount = (int)p.Value }).ToArray()); } public Task GetDetailedGrainReport(GrainId grainId) { logger.LogInformation("DetailedGrainReport for grain id {GrainId}", grainId); - string grainClassName; + string? grainClassName; try { var properties = this.grainPropertiesResolver.GetGrainProperties(grainId.Type);