diff --git a/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java b/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java index 220af8d71d..3037915c9d 100644 --- a/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java +++ b/modules/swagger-core/src/main/java/io/swagger/v3/core/jackson/ModelResolver.java @@ -1803,7 +1803,7 @@ protected boolean applyBeanValidatorAnnotations(Schema property, Annotation[] an } } - if (annos.containsKey("javax.validation.constraints.NotEmpty")) { + if (annos.containsKey("javax.validation.constraints.NotEmpty") && applyNotNullAnnotations ) { NotEmpty anno = (NotEmpty) annos.get("javax.validation.constraints.NotEmpty"); boolean apply = checkGroupValidation(anno.groups(), invocationGroups, acceptNoGroups); if (apply) { @@ -1829,7 +1829,7 @@ protected boolean applyBeanValidatorAnnotations(Schema property, Annotation[] an } } - if (annos.containsKey("javax.validation.constraints.NotBlank")) { + if (annos.containsKey("javax.validation.constraints.NotBlank") && applyNotNullAnnotations ) { NotBlank anno = (NotBlank) annos.get("javax.validation.constraints.NotBlank"); boolean apply = checkGroupValidation(anno.groups(), invocationGroups, acceptNoGroups); if (apply) { diff --git a/modules/swagger-core/src/test/java/io/swagger/v3/core/converting/ModelPropertyTest.java b/modules/swagger-core/src/test/java/io/swagger/v3/core/converting/ModelPropertyTest.java index f55cbcf36d..c011213509 100644 --- a/modules/swagger-core/src/test/java/io/swagger/v3/core/converting/ModelPropertyTest.java +++ b/modules/swagger-core/src/test/java/io/swagger/v3/core/converting/ModelPropertyTest.java @@ -114,6 +114,8 @@ public void testRequiredProperty() { assertTrue(model.getRequired().contains("modeRequired")); assertFalse(model.getRequired().contains("modeNotRequired")); assertFalse(model.getRequired().contains("modeNotRequiredWithAnnotation")); + assertFalse(model.getRequired().contains("modeNotRequiredWithAnnotationForNotBlank")); + assertFalse(model.getRequired().contains("modeNotRequiredWithAnnotationForNotEmpty")); } @Test diff --git a/modules/swagger-core/src/test/java/io/swagger/v3/core/oas/models/RequiredFields.java b/modules/swagger-core/src/test/java/io/swagger/v3/core/oas/models/RequiredFields.java index 1257fd74be..8ef0004275 100644 --- a/modules/swagger-core/src/test/java/io/swagger/v3/core/oas/models/RequiredFields.java +++ b/modules/swagger-core/src/test/java/io/swagger/v3/core/oas/models/RequiredFields.java @@ -3,6 +3,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; + +import java.util.List; import java.util.Optional; public class RequiredFields { @@ -42,4 +46,12 @@ public class RequiredFields { @Schema(description = "mode not required with annotation", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @NotNull public Long modeNotRequiredWithAnnotation; + + @Schema(description = "mode not required with annotation for NotBlank", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotBlank + public String modeNotRequiredWithAnnotationForNotBlank; + + @Schema(description = "mode not required with annotation for NotEmpty", requiredMode = Schema.RequiredMode.NOT_REQUIRED) + @NotEmpty + public List modeNotRequiredWithAnnotationForNotEmpty; }