This is an automated email from the ASF dual-hosted git repository.
dahn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/master by this push:
new ca1760a CLOUDSTACK-10320 - Invalid pair for response object breaking
response parsing (#2481)
ca1760a is described below
commit ca1760a46b67004d049b34ffbae4b635ec0a1561
Author: Marc-Aurèle Brothier <[email protected]>
AuthorDate: Fri Mar 23 17:55:22 2018 +0100
CLOUDSTACK-10320 - Invalid pair for response object breaking response
parsing (#2481)
---
.../src/main/java/com/cloud/utils/db/GenericDaoBase.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
b/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
index 304a122..442d3cc 100644
--- a/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
+++ b/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
@@ -1315,6 +1315,10 @@ public abstract class GenericDaoBase<T, ID extends
Serializable> extends Compone
public Pair<List<T>, Integer> searchAndCount(final SearchCriteria<T> sc,
final Filter filter) {
List<T> objects = search(sc, filter, null, false);
Integer count = getCount(sc);
+ // Count cannot be less than the result set but can be higher due to
pagination, see CLOUDSTACK-10320
+ if (count < objects.size()) {
+ count = objects.size();
+ }
return new Pair<List<T>, Integer>(objects, count);
}
@@ -1323,6 +1327,11 @@ public abstract class GenericDaoBase<T, ID extends
Serializable> extends Compone
public Pair<List<T>, Integer> searchAndDistinctCount(final
SearchCriteria<T> sc, final Filter filter) {
List<T> objects = search(sc, filter, null, false);
Integer count = getDistinctCount(sc);
+ // Count cannot be 0 if there is at least a result in the list, see
CLOUDSTACK-10320
+ if (count == 0 && !objects.isEmpty()) {
+ // Cannot assume if it's more than one since the count is distinct
vs search
+ count = 1;
+ }
return new Pair<List<T>, Integer>(objects, count);
}
@@ -1331,6 +1340,11 @@ public abstract class GenericDaoBase<T, ID extends
Serializable> extends Compone
public Pair<List<T>, Integer> searchAndDistinctCount(final
SearchCriteria<T> sc, final Filter filter, final String[] distinctColumns) {
List<T> objects = search(sc, filter, null, false);
Integer count = getDistinctCount(sc, distinctColumns);
+ // Count cannot be 0 if there is at least a result in the list, see
CLOUDSTACK-10320
+ if (count == 0 && !objects.isEmpty()) {
+ // Cannot assume if it's more than one since the count is distinct
vs search
+ count = 1;
+ }
return new Pair<List<T>, Integer>(objects, count);
}
--
To stop receiving notification emails like this one, please contact
[email protected].