UpdateItemEnhancedRequest for null version number with `ignoreNulls(true)` results into ConditionalCheckFailedException
- Langage dominant
- Java
- Étoiles
- 2.6k
- Forks
- 1k
- Merge moyen
- 2 j 9 h
- PR mergées (30 j)
- 51
Description
## Describe the issue
When we use `ignoreNulls(true)` feature while doing `table.updateItem` understanding that it will ignore all null fields to update it in db. But it looks like it's not working as expected for dynamo db version field, when my object contain all required fields like primary hash key, and sort key and version number as null, it's throwing `ConditionalCheckFailedException`.
## Steps to Reproduce
Where version number field is declared as below.
```
@Getter(onMethod_ = {@DynamoDbVersionAttribute})
private Long version;
```
```
customDynamoDbBeanObject.version(null);
dynamoDbTable.updateItem(UpdateItemEnhancedRequest.builder(CustomDynamoDbBean.class)
.item(customDynamoDbBeanObject)
.ignoreNulls(true)
.build());
```
## Current Behavior
It's throwing `ConditionalCheckFailedException`.
## Your Environment
* AWS Java SDK version used: AwsJavaSdk-DynamoDb-Enhanced = 2.0;
* JDK version used: JDK8 = 1.0;
* Operating System and version: Linux
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par UpdateItemEnhancedRequest et table.updateItem dans DynamoDB Enhanced Client, puis suivez la manière dont un @DynamoDbVersionAttribute null est traité avec ignoreNulls(true). Reproduisez l’exemple CustomDynamoDbBean présenté sur JDK 8 avec AWS SDK 2.0 ; le travail est terminé lorsque la version null est ignorée sans ConditionalCheckFailedException et que le comportement est couvert par une régression.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- database
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100