Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 331e28b

Browse files
authored
Merge branch 'develop' into dependabot/github_actions/actions/download-artifact-5.0.0
2 parents 238cfe6 + 9a65ee3 commit 331e28b

File tree

6 files changed

+69
-15
lines changed

6 files changed

+69
-15
lines changed

‎.github/workflows/dispatch_analytics.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
environment: analytics
3232
steps:
3333
- name: Configure AWS credentials
34-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df
34+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a
3535
with:
3636
aws-region: eu-central-1
3737
role-to-assume: ${{ secrets.AWS_ANALYTICS_ROLE_ARN }}

‎.github/workflows/docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Build docs website
3737
run: make build-docs-website
3838
- name: Configure AWS credentials
39-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
39+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
4040
with:
4141
aws-region: us-east-1
4242
role-to-assume: ${{ secrets.AWS_DOCS_ROLE_ARN }}
@@ -69,7 +69,7 @@ jobs:
6969
docfx apidocs/docfx.json
7070
7171
- name: Configure AWS credentials
72-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
72+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
7373
with:
7474
aws-region: us-east-1
7575
role-to-assume: ${{ secrets.AWS_DOCS_ROLE_ARN }}

‎.github/workflows/e2e-tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
3535

3636
- name: Configure AWS credentials
37-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
37+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
3838
with:
3939
role-to-assume: ${{ secrets.E2E_DEPLOY_ROLE }}
4040
aws-region: us-east-1
@@ -78,7 +78,7 @@ jobs:
7878
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
7979

8080
- name: Configure AWS credentials
81-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
81+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
8282
with:
8383
role-to-assume: ${{ secrets.E2E_DEPLOY_ROLE }}
8484
aws-region: us-east-1
@@ -119,7 +119,7 @@ jobs:
119119
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
120120

121121
- name: Configure AWS credentials
122-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
122+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
123123
with:
124124
role-to-assume: ${{ secrets.E2E_DEPLOY_ROLE }}
125125
aws-region: us-east-1
@@ -151,7 +151,7 @@ jobs:
151151
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
152152

153153
- name: Configure AWS credentials
154-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
154+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
155155
with:
156156
role-to-assume: ${{ secrets.E2E_DEPLOY_ROLE }}
157157
aws-region: us-east-1
@@ -192,7 +192,7 @@ jobs:
192192
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
193193

194194
- name: Configure AWS credentials
195-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
195+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
196196
with:
197197
role-to-assume: ${{ secrets.E2E_DEPLOY_ROLE }}
198198
aws-region: us-east-1

‎.github/workflows/reusable_publish_docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
poetry run mike set-default --push latest
6969
7070
- name: Configure AWS credentials
71-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
71+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
7272
with:
7373
aws-region: us-east-1
7474
role-to-assume: ${{ secrets.AWS_DOCS_ROLE_ARN }}
@@ -99,7 +99,7 @@ jobs:
9999
brew install -f docfx --skip-cask-deps --ignore-dependencies
100100
docfx apidocs/docfx.json
101101
- name: Configure AWS credentials
102-
uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df # v4.2.1
102+
uses: aws-actions/configure-aws-credentials@7474bc4690e29a8392af63c5b98e7449536d5c3a # v4.3.1
103103
with:
104104
aws-region: us-east-1
105105
role-to-assume: ${{ secrets.AWS_DOCS_ROLE_ARN }}

‎libraries/src/AWS.Lambda.Powertools.Logging/Internal/PowertoolsLogger.cs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -396,14 +396,26 @@ private static bool CustomFormatter<TState>(TState state, Exception exception, o
396396
return false;
397397

398398
#if NET8_0_OR_GREATER
399-
var stateKeys = (state as IEnumerable<KeyValuePair<string, object>>)?
400-
.ToDictionary(i => i.Key, i => PowertoolsLoggerHelpers.ObjectToDictionary(i.Value));
399+
var stateKeys = new Dictionary<string, object>();
400+
if (state is IEnumerable<KeyValuePair<string, object>> keyValuePairs)
401+
{
402+
foreach (var kvp in keyValuePairs)
403+
{
404+
stateKeys[kvp.Key] = PowertoolsLoggerHelpers.ObjectToDictionary(kvp.Value);
405+
}
406+
}
401407
#else
402-
var stateKeys = (state as IEnumerable<KeyValuePair<string, object>>)?
403-
.ToDictionary(i => i.Key, i => i.Value);
408+
var stateKeys = new Dictionary<string, object>();
409+
if (state is IEnumerable<KeyValuePair<string, object>> keyValuePairs)
410+
{
411+
foreach (var kvp in keyValuePairs)
412+
{
413+
stateKeys[kvp.Key] = kvp.Value;
414+
}
415+
}
404416
#endif
405417

406-
if (stateKeysisnull||stateKeys.Count != 2)
418+
if (stateKeys.Count != 2)
407419
return false;
408420

409421
if (!stateKeys.TryGetValue(_originalformat, out var originalFormat))

‎libraries/tests/AWS.Lambda.Powertools.Logging.Tests/PowertoolsLoggerTest.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1750,6 +1750,48 @@ public void Log_Cold_Start(bool willLog, string awsInitType)
17501750
// Assert
17511751
Assert.Contains($"\"coldStart\":{willLog.ToString().ToLower()}", outPut);
17521752
}
1753+
1754+
[Fact]
1755+
public void Log_WhenDuplicateKeysInState_LastValueWins()
1756+
{
1757+
// Arrange
1758+
var loggerName = Guid.NewGuid().ToString();
1759+
var service = Guid.NewGuid().ToString();
1760+
var logLevel = LogLevel.Information;
1761+
1762+
var configurations = Substitute.For<IPowertoolsConfigurations>();
1763+
configurations.Service.Returns(service);
1764+
configurations.LogLevel.Returns(logLevel.ToString());
1765+
configurations.LoggerOutputCase.Returns(LoggerOutputCase.PascalCase.ToString());
1766+
1767+
var systemWrapper = Substitute.For<IConsoleWrapper>();
1768+
1769+
var loggerConfiguration = new PowertoolsLoggerConfiguration
1770+
{
1771+
Service = service,
1772+
MinimumLogLevel = logLevel,
1773+
LoggerOutputCase = LoggerOutputCase.PascalCase,
1774+
LogOutput = systemWrapper
1775+
};
1776+
1777+
var provider = new PowertoolsLoggerProvider(loggerConfiguration, configurations);
1778+
var logger = provider.CreateLogger(loggerName);
1779+
1780+
// Create state with duplicate keys (simulating duplicate HTTP headers)
1781+
var stateWithDuplicates = new List<KeyValuePair<string, object>>
1782+
{
1783+
new("Content-Type", "application/json"),
1784+
new("Content-Type", "application/x-www-form-urlencoded"), // This should win
1785+
new("Accept", "text/html"),
1786+
new("Accept", "*/*") // This should win
1787+
};
1788+
1789+
// Act - This should not throw an exception
1790+
logger.Log(logLevel, new EventId(), stateWithDuplicates, null, (state, ex) => "Test message");
1791+
1792+
// Assert
1793+
systemWrapper.Received(1).WriteLine(Arg.Any<string>());
1794+
}
17531795

17541796
public void Dispose()
17551797
{

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /