Juan Hernandez has uploaded a new change for review.

Change subject: restapi: Discard blank "from" parameter
......................................................................

restapi: Discard blank "from" parameter

Currently when the RESTAPI receives a query with an empth "from"
parameter it generates an exception because it tries to parse the value
as a numeric value. Well behaved callers shouldn't generate this kind of
request, but anyhow the RESTAPI shouldn't fail in this case, it should
just ignore the parameter completely.

Change-Id: I1a909193d17503bb7eb7025b40a56243c6a044bf
Bug-Url: https://bugzilla.redhat.com/1179171
Signed-off-by: Juan Hernandez <[email protected]>
---
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
1 file changed, 14 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/08/36608/1

diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
index 3349ffd..9b072f8 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendCollectionResource.java
@@ -10,6 +10,7 @@
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Response;
 
+import org.apache.commons.lang.StringUtils;
 import org.ovirt.engine.api.common.util.QueryHelper;
 import org.ovirt.engine.api.common.util.StatusUtils;
 import org.ovirt.engine.api.model.ActionableResource;
@@ -67,22 +68,26 @@
         HashMap<String, String> queryConstraints = 
QueryHelper.getQueryConstraints(getUriInfo(),
                                                                                
    FROM_CONSTRAINT_PARAMETER);
 
-        if (matrixConstraints.containsKey(FROM_CONSTRAINT_PARAMETER)) {
+        String fromParameter = 
matrixConstraints.get(FROM_CONSTRAINT_PARAMETER);
+        if (StringUtils.isNotBlank(fromParameter)) {
             try {
-                
searchParams.setSearchFrom(Long.parseLong(matrixConstraints.get(FROM_CONSTRAINT_PARAMETER)));
+                searchParams.setSearchFrom(Long.parseLong(fromParameter));
             } catch (Exception ex) {
                 log.error("Unwrapping of '{}' matrix search parameter failed: 
{}",
                         FROM_CONSTRAINT_PARAMETER, ex.getMessage());
                 log.error("Exception", ex);
             }
-        } else if (queryConstraints.containsKey(FROM_CONSTRAINT_PARAMETER)) {
+        } else {
             //preserved in sake if backward compatibility until 4.0
-            try {
-                
searchParams.setSearchFrom(Long.parseLong(queryConstraints.get(FROM_CONSTRAINT_PARAMETER)));
-            } catch (Exception ex) {
-                log.error("Unwrapping of '{}' query search parameter failed: 
{}",
-                        FROM_CONSTRAINT_PARAMETER, ex.getMessage());
-                log.error("Exception", ex);
+            fromParameter = queryConstraints.get(FROM_CONSTRAINT_PARAMETER);
+            if (StringUtils.isNotBlank(fromParameter)) {
+                try {
+                    searchParams.setSearchFrom(Long.parseLong(fromParameter));
+                } catch (Exception ex) {
+                    log.error("Unwrapping of '{}' query search parameter 
failed: {}",
+                            FROM_CONSTRAINT_PARAMETER, ex.getMessage());
+                    log.error("Exception", ex);
+                }
             }
         }
         if 
(matrixConstraints.containsKey(CASE_SENSITIVE_CONSTRAINT_PARAMETER)) {


-- 
To view, visit http://gerrit.ovirt.org/36608
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a909193d17503bb7eb7025b40a56243c6a044bf
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Juan Hernandez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to