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
