UpdateItemEnhancedRequest for null version number with `ignoreNulls(true)` results into ConditionalCheckFailedException
- Lenguaje dominante
- Java
- Estrellas
- 2.6k
- Forks
- 1k
- Merge medio
- 2 d 9 h
- PR fusionados (30 d)
- 51
Descripción
## 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
Guía de contribución
Línea de trabajo
Comienza en UpdateItemEnhancedRequest y table.updateItem en DynamoDB Enhanced Client y, a continuación, sigue cómo se gestiona un @DynamoDbVersionAttribute null con ignoreNulls(true). Reproduce el ejemplo mostrado de CustomDynamoDbBean en JDK 8 con AWS SDK 2.0; se considera terminado cuando la versión null se ignora sin ConditionalCheckFailedException y el comportamiento cuenta con cobertura de regresión.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- database
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100