diff --git a/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java b/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java index fca9960d94..97e7952f65 100644 --- a/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java +++ b/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityService.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.fge.jsonpatch.JsonPatch; import com.github.fge.jsonpatch.JsonPatchException; import com.github.fge.jsonpatch.Patch; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterators; @@ -24,6 +25,7 @@ import com.linkedin.common.urn.UrnUtils; import com.linkedin.common.urn.VersionedUrnUtils; import com.linkedin.data.schema.RecordDataSchema; import com.linkedin.data.schema.TyperefDataSchema; +import com.linkedin.data.schema.validation.ValidationResult; import com.linkedin.data.schema.validator.Validator; import com.linkedin.data.template.DataTemplateUtil; import com.linkedin.data.template.RecordTemplate; @@ -563,10 +565,11 @@ public class EntityService { } private void validateAspect(Urn urn, RecordTemplate aspect, Validator validator) { - RecordTemplateValidator.validate(aspect, validationResult -> { + Consumer resultFunction = validationResult -> { throw new IllegalArgumentException("Invalid format for aspect: " + aspect + " for entity: " + urn + "\n Cause: " - + validationResult.getMessages()); - }, validator); + + validationResult.getMessages()); }; + RecordTemplateValidator.validate(buildKeyAspect(urn), resultFunction, validator); + RecordTemplateValidator.validate(aspect, resultFunction, validator); } /** * Checks whether there is an actual update to the aspect by applying the updateLambda @@ -697,6 +700,7 @@ public class EntityService { return systemMetadata; } + @VisibleForTesting static void validateUrn(@Nonnull final Urn urn) { if (urn.toString().trim().length() != urn.toString().length()) { diff --git a/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java b/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java index 117ed92e6f..dee6ccb2f9 100644 --- a/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java +++ b/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java @@ -1215,12 +1215,9 @@ abstract public class EntityServiceTest