Bug description
Pageable holds inconsistent sort object of type List<String>. Please see the following examples:
- query parameter:
?sort=id, sort object: ["id"], size of the object: 1
- query parameter:
?sort=id,desc, sort object: ["id", "desc"], size of the object: 2
- query parameter:
?sort=id,desc&sort=name, sort object: ["id,desc", "name"], size of the object: 2
- query parameter:
?sort=id,desc&sort=name,desc, sort object: ["id,desc", "name,desc"], size of the object: 2
- query parameter:
?sort=id,desc&sort=name,desc&sort=address, sort object: ["id,desc", "name,desc", "address"], size of the object: 3
- query parameter:
?sort=id,desc&sort=name,desc&sort=address,desc, sort object: ["id,desc", "name,desc", "address,desc"], size of the object: 3
Versions and usage
- Spring Boot
2.2.2
- springdoc-openapi-ui & springdoc-openapi-data-rest: 1.4.8
- Controller's method is annotated with
@PageableAsQueryParam, with hidden method's parameter: @Parameter(hidden = true) Pageable pageable so that pagination and sorting criteria are properly shown in the UI:

- Example of Swagger UI's generated request URL for the problematic case:
...&page=0&size=20&sort=id%2Cdesc
Expected behaviour
- When the query parameter is
sort=id,desc (bolded example above) the Pageable's sort object should contain only one element ["id,desc"].
Bug description
Pageableholds inconsistentsortobject of typeList<String>. Please see the following examples:?sort=id, sort object:["id"], size of the object: 1?sort=id,desc, sort object:["id", "desc"], size of the object: 2?sort=id,desc&sort=name, sort object:["id,desc", "name"], size of the object: 2?sort=id,desc&sort=name,desc, sort object:["id,desc", "name,desc"], size of the object: 2?sort=id,desc&sort=name,desc&sort=address, sort object:["id,desc", "name,desc", "address"], size of the object: 3?sort=id,desc&sort=name,desc&sort=address,desc, sort object:["id,desc", "name,desc", "address,desc"], size of the object: 3Versions and usage
2.2.2@PageableAsQueryParam, with hidden method's parameter:@Parameter(hidden = true) Pageable pageableso that pagination and sorting criteria are properly shown in the UI:...&page=0&size=20&sort=id%2CdescExpected behaviour
sort=id,desc(bolded example above) thePageable's sort object should contain only one element["id,desc"].