API: Fix listSSHKeyPairs API when listing all resources (listall=true & projectid=-1)
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 7d1b7b7..8d69d4d 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
@@ -41,6 +41,7 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 import java.util.UUID;
@@ -1293,7 +1294,8 @@
             fromIndex += onClause.length();
         }
 
-        str.delete(str.length() - 4, str.length());
+        int diff =  str.toString().trim().toLowerCase(Locale.ROOT).endsWith("where") ? 6 : 4;
+        str.delete(str.length() - diff, str.length());
 
         for (JoinBuilder<SearchCriteria<?>> join : joins) {
             if (join.getT().getJoins() != null) {