Skip to content

Commit ba1859c

Browse files
committed
fix: make GetTraceId static to satisfy Sonar S2696
Instance method was setting a static field. Refactored to accept a Func<string> fallback so the method can be fully static.
1 parent db957fc commit ba1859c

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

libraries/src/AWS.Lambda.Powertools.Common/Core/PowertoolsConfigurations.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public bool GetEnvironmentVariableOrDefault(string variable, bool defaultValue)
178178
/// Falls back to the _X_AMZN_TRACE_ID environment variable for older runtimes.
179179
/// </summary>
180180
/// <value>The X-Ray trace identifier.</value>
181-
public string XRayTraceId => GetTraceId();
181+
public string XRayTraceId => GetTraceId(() => GetEnvironmentVariable(Constants.XrayTraceIdEnv));
182182

183183
/// <summary>
184184
/// Gets a value indicating whether this instance is Lambda.
@@ -223,13 +223,13 @@ public bool GetEnvironmentVariableOrDefault(string variable, bool defaultValue)
223223
public string AwsInitializationType =>
224224
GetEnvironmentVariable(Constants.AWSInitializationTypeEnv);
225225

226-
private string GetTraceId()
226+
private static string GetTraceId(Func<string> fallback)
227227
{
228228
if (_isTraceProviderAvailable == true)
229229
return GetTraceIdFromProvider();
230230

231231
if (_isTraceProviderAvailable == false)
232-
return GetEnvironmentVariable(Constants.XrayTraceIdEnv);
232+
return fallback();
233233

234234
// First call — probe whether LambdaTraceProvider exists in the loaded runtime
235235
try
@@ -241,7 +241,7 @@ private string GetTraceId()
241241
catch (TypeLoadException)
242242
{
243243
_isTraceProviderAvailable = false;
244-
return GetEnvironmentVariable(Constants.XrayTraceIdEnv);
244+
return fallback();
245245
}
246246
}
247247

0 commit comments

Comments
 (0)