mirror of https://github.com/apache/cloudstack.git
Fixed listEvents intermittent exception:
com.mysql.cj.jdbc.ClientPreparedStatement: SELECT event_view.id, event_view.uuid, event_view.type, event_view.state, event_view.description, event_view.created, event_view.user_id, event_view.user_name, event_view.level, event_view.start_id, event_view.start_uuid, event_view.parameters, event_view.account_id, event_view.account_uuid, event_view.account_name, event_view.account_type, event_view.domain_id, event_view.domain_uuid, event_view.domain_name, event_view.domain_path, event_view.resource_id, event_view.resource_type, event_view.project_id, event_view.project_uuid, event_view.project_name, event_view.archived, event_view.display FROM event_view WHERE event_view.id IN )
This commit is contained in:
parent
74ceba1f00
commit
8cabccdbae
|
|
@ -739,7 +739,13 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||
Integer count = eventIdPage.second();
|
||||
Long[] idArray = eventIdPage.first().toArray(new Long[0]);
|
||||
|
||||
if (count == 0) {
|
||||
/**
|
||||
* Need to check array empty, because {@link com.cloud.utils.db.GenericDaoBase#searchAndCount(SearchCriteria, Filter, boolean)}
|
||||
* makes two calls: first to get objects and second to get count.
|
||||
* List events has start date filter, there is highly possible cause where no objects loaded
|
||||
* and next millisecond new event added and finally we ended up with count = 1 and no ids.
|
||||
*/
|
||||
if (count == 0 || idArray.length < 1) {
|
||||
return new Pair<>(new ArrayList<>(), count);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue