aws / aws/aws-sdk-java-v2

UpdateItemEnhancedRequest for null version number with `ignoreNulls(true)` results into ConditionalCheckFailedException

Ouverte
#1,985 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
documentation p3
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.