Description
There are some incoherence encountered in the different execution of the endpoint which is used to search tasks assigned as potential owner through the API REST.
This is the endpoint used and the possible input parameters:
GET: /server/queries/tasks/instances/pot-owners
status: optional task status (Created, Ready, Reserved, InProgress, Suspended, Completed, Failed, Error, Exited, Obsolete)
groups (required): optional group names to include in the query. *This is the first incoherence we’ve found considering that the parameter is checked as required but the description and the implementation allows to be optional.
user: optional user id to be used instead of authenticated user - only when bypass authenticated user is enabled.
page: optional pagination - at which page to start, defaults to 0 (meaning first)
pageSize: optional pagination - size of the result, defaults to 10.
sort: optional sort column, no default.
sortOrder: optional sort direction (asc, desc) - defaults to asc.
filter: optional custom filter for task data.
Looking at the code, this method implementation is in the class RuntimeDataResource.java:
https://github.com/kiegroup/droolsjbpm-integration/blob/515dacc7d305cfa5655869ec1096c4bdc309ef82/kie-server-parent/kie-server-remote/kie-server-rest/kie-server-rest-jbpm/src/main/java/org/kie/server/remote/rest/jbpm/RuntimeDataResource.java#L515
There are 4 different ways to call the method depends of the input parameters set:
- groupIds is NOT null and status is null.
- groupIds is NOT null and status is NOT null
- groupIds is null and status is null
- groupIds is null and status is NOT null
In the first option, the list of groupId set by the user in the input parameters is not taken into account, so the search results are not correct.