Skip to content

Commit 001373e

Browse files
authored
Bugfix for handling '+' character in attribute names (#3063)
1 parent a72991e commit 001373e

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "Amazon DynamoDB Enhanced Client",
3+
"contributor": "",
4+
"type": "bugfix",
5+
"description": "Bugfix for handling attribute names with `+` character"
6+
}

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public static String cleanAttributeName(String key) {
5454
|| chars[i] == '.'
5555
|| chars[i] == '-'
5656
|| chars[i] == '#'
57+
|| chars[i] == '+'
5758
|| chars[i] == ':') {
5859
chars[i] = '_';
5960
somethingChanged = true;

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/functionaltests/BasicCrudTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
import software.amazon.awssdk.services.dynamodb.model.ProjectionType;
4646

4747
public class BasicCrudTest extends LocalDynamoDbSyncTestBase {
48-
private static final String ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS = "a*t:t.r-i#bute3";
48+
private static final String ATTRIBUTE_NAME_WITH_SPECIAL_CHARACTERS = "a*t:t.r-i#bute+3";
4949

5050
private static class Record {
5151
private String id;

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/EnhancedClientUtilsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ public void createKeyFromMap_partitionAndSort() {
6060

6161
@Test
6262
public void cleanAttributeName_cleansSpecialCharacters() {
63-
String result = EnhancedClientUtils.cleanAttributeName("a*b.c-d:e#f");
63+
String result = EnhancedClientUtils.cleanAttributeName("a*b.c-d:e#f+g");
6464

65-
assertThat(result).isEqualTo("a_b_c_d_e_f");
65+
assertThat(result).isEqualTo("a_b_c_d_e_f_g");
6666
}
6767
}

0 commit comments

Comments
 (0)