Skip to content

Commit

Permalink
fixed adding classification fails on required attributes if already e…
Browse files Browse the repository at this point in the history
…xist (#335)
  • Loading branch information
mfriesen authored Jan 25, 2025
1 parent 959e655 commit 2bdf4f7
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
1 change: 0 additions & 1 deletion dynamodb-documents/config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,6 @@
<property name="max" value="50"/>
<property name="countEmpty" value="false"/>
</module>
<module name="ParameterNumber"/>
<module name="RedundantModifier"/>
<module name="EqualsHashCode"/>
<module name="EmptyStatement"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,11 +285,11 @@ private Collection<DocumentAttributeRecord> generateDocumentAttributesToSave(fin

// Previous document attributes without the ones that are going to be removed, so we don't
// generate composite keys for them
List<DocumentAttributeRecord> previousDocument = previousDocumentAttributeRecords.stream()
.filter(element -> !attributesToBeDeleted.contains(element)).toList();
List<DocumentAttributeRecord> previousDocumentAttributes = previousDocumentAttributeRecords
.stream().filter(element -> !attributesToBeDeleted.contains(element)).toList();

Collection<DocumentAttributeRecord> allAttributes =
Objects.concat(newDocumentAttributeRecords, previousDocument);
Objects.concat(newDocumentAttributeRecords, previousDocumentAttributes);

Set<String> attrkeys =
allAttributes.stream().map(DocumentAttributeRecord::getKey).collect(Collectors.toSet());
Expand All @@ -316,7 +316,7 @@ private Collection<DocumentAttributeRecord> generateDocumentAttributesToSave(fin

// validation
validateDocumentAttributes(schemaAttributes, siteId, documentId, documentAttributes,
attributesToBeDeleted, validation, validationAccess);
attributesToBeDeleted, previousDocumentAttributes, validation, validationAccess);

listBuilder.setCompositeKeysToBeDeleted(compositeKeysToBeDeleted);

Expand Down Expand Up @@ -2332,16 +2332,19 @@ private void validateDocumentAttributes(final String siteId, final String docume
private void validateDocumentAttributes(final List<SchemaAttributes> schemaAttributes,
final String siteId, final String documentId,
final Collection<DocumentAttributeRecord> documentAttributes,
final Collection<DocumentAttributeRecord> toBeDeleted, final AttributeValidation validation,
final AttributeValidationAccess validationAccess) throws ValidationException {
final Collection<DocumentAttributeRecord> toBeDeleted,
final List<DocumentAttributeRecord> previousDocumentAttributes,
final AttributeValidation validation, final AttributeValidationAccess validationAccess)
throws ValidationException {

Collection<ValidationError> errors = new ArrayList<>();

validateDocumentAttributes(siteId, documentId, documentAttributes, validationAccess, errors);

if (errors.isEmpty()) {

Collection<DocumentAttributeRecord> concat = Objects.concat(documentAttributes, toBeDeleted);
Collection<DocumentAttributeRecord> concat = Objects
.concat(Objects.concat(documentAttributes, toBeDeleted), previousDocumentAttributes);
Map<String, AttributeRecord> attributeRecordMap =
this.attributeValidator.getAttributeRecordMap(siteId, concat);

Expand Down

0 comments on commit 2bdf4f7

Please sign in to comment.