ply
ply copied to clipboard
Plyex javax.validations size
There is a snakeyaml error being thrown on minlength and maxlength when
- Using
@Size
on the model property. - Using
@ParameterObject
and@Valid
on the request controller method argument
Model:
public class User {
@Size(min=0, max=20)
private String name;
public User(String name) {
this.name = name;
}
Controller
@RestController
@RequestMapping("api/v1/users")
public class UserController {
@GetMapping(
value = "/iwhoami",
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> whoami(
@ParameterObject
@Valid
User user) {
return new ResponseEntity<>(new User(), HttpStatus.OK);
}
}
Partial Exception Stack Trace:
Caused by: Cannot create property=get for JavaBean=org.plyct.plyex.openapi.OpenApi$Path@132e0cc
in 'string', line 646, column 5:
get:
^
Cannot create property=parameters for JavaBean=org.plyct.plyex.openapi.OpenApi$Operation@2c78d320
in 'string', line 647, column 7:
tags:
^
Cannot create property=schema for JavaBean=org.plyct.plyex.openapi.OpenApi$Parameter@67d18ed7
in 'string', line 651, column 9:
- name: accountNumber
^
Cannot create property=maxLength for JavaBean=org.plyct.plyex.openapi.OpenApi$Schema@5c44c582
in 'string', line 655, column 11:
maxLength: 1
^
Unable to find property 'maxLength' on class: org.plyct.plyex.openapi.OpenApi$Schema
in 'string', line 655, column 22:
maxLength: 1
^
in 'string', line 655, column 11:
maxLength: 1
^
in 'string', line 651, column 7:
- name: accountNumber
^
in 'string', line 647, column 7:
tags:
^
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:291)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:172)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping2ndStep(BaseConstructor.java:480)
at org.yaml.snakeyaml.constructor.SafeConstructor.constructMapping2ndStep(SafeConstructor.java:190)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructMapping(BaseConstructor.java:461)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:159)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.newInstance(Constructor.java:306)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:268)
... 11 more
Caused by: Cannot create property=parameters for JavaBean=org.plyct.plyex.openapi.OpenApi$Operation@2c78d320
in 'string', line 647, column 7:
tags:
^
Cannot create property=schema for JavaBean=org.plyct.plyex.openapi.OpenApi$Parameter@67d18ed7
in 'string', line 651, column 9:
- name: accountNumber
^
Cannot create property=maxLength for JavaBean=org.plyct.plyex.openapi.OpenApi$Schema@5c44c582
in 'string', line 655, column 11:
maxLength: 1
^
Unable to find property 'maxLength' on class: org.plyct.plyex.openapi.OpenApi$Schema
in 'string', line 655, column 22:
maxLength: 1
^
in 'string', line 655, column 11:
maxLength: 1
^
in 'string', line 651, column 7:
- name: accountNumber
^
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:291)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:172)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:268)
... 22 more
Caused by: Cannot create property=schema for JavaBean=org.plyct.plyex.openapi.OpenApi$Parameter@67d18ed7
in 'string', line 651, column 9:
- name: accountNumber
^
Cannot create property=maxLength for JavaBean=org.plyct.plyex.openapi.OpenApi$Schema@5c44c582
in 'string', line 655, column 11:
maxLength: 1
^
Unable to find property 'maxLength' on class: org.plyct.plyex.openapi.OpenApi$Schema
in 'string', line 655, column 22:
maxLength: 1
^
in 'string', line 655, column 11:
maxLength: 1
^
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:291)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:172)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructArrayStep2(BaseConstructor.java:405)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructArray(BaseConstructor.java:386)
at org.yaml.snakeyaml.constructor.Constructor$ConstructSequence.construct(Constructor.java:549)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.newInstance(Constructor.java:306)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:268)
... 26 more
Caused by: Cannot create property=maxLength for JavaBean=org.plyct.plyex.openapi.OpenApi$Schema@5c44c582
in 'string', line 655, column 11:
maxLength: 1
^
Unable to find property 'maxLength' on class: org.plyct.plyex.openapi.OpenApi$Schema
in 'string', line 655, column 22:
maxLength: 1
^
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:291)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.construct(Constructor.java:172)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObjectNoCheck(BaseConstructor.java:230)
at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:220)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:268)
... 36 more
Caused by: org.yaml.snakeyaml.error.YAMLException: Unable to find property 'maxLength' on class: org.plyct.plyex.openapi.OpenApi$Schema
at org.yaml.snakeyaml.introspector.PropertyUtils.getProperty(PropertyUtils.java:158)
at org.yaml.snakeyaml.introspector.PropertyUtils.getProperty(PropertyUtils.java:148)
at org.yaml.snakeyaml.TypeDescription.discoverProperty(TypeDescription.java:254)
at org.yaml.snakeyaml.TypeDescription.getProperty(TypeDescription.java:265)
at org.plyct.plyex.openapi.YamlDoc$TypeDescription.getProperty(YamlDoc.java:158)
at org.yaml.snakeyaml.constructor.Constructor$ConstructMapping.constructJavaBean2ndStep(Constructor.java:231)
... 40 more