From 680812f67594304ed235c90146742933f61c9687 Mon Sep 17 00:00:00 2001 From: alena Date: Tue, 30 Nov 2010 10:36:16 -0800 Subject: [PATCH] bug 7223: page and pagesize parameters must be specified together "list" api commands status 7223: resolved fixed --- server/src/com/cloud/api/ApiDispatcher.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index 1ba61a4d6c4..c55d5642691 100644 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -143,6 +143,14 @@ public class ApiDispatcher { public static void setupParameters(BaseCmd cmd, Map params){ Map unpackedParams = cmd.unpackParams(params); + if (cmd instanceof BaseListCmd) { + if ((unpackedParams.get(ApiConstants.PAGE) == null) && (unpackedParams.get(ApiConstants.PAGE_SIZE) != null)) { + throw new ServerApiException(BaseCmd.PARAM_ERROR, "\"page\" parameter is required when \"pagesize\" is specified"); + } else if ((unpackedParams.get(ApiConstants.PAGE_SIZE) == null) && (unpackedParams.get(ApiConstants.PAGE) != null)) { + throw new ServerApiException(BaseCmd.PARAM_ERROR, "\"pagesize\" parameter is required when \"page\" is specified"); + } + } + Field[] fields = cmd.getClass().getDeclaredFields(); Class superClass = cmd.getClass().getSuperclass(); while (BaseCmd.class.isAssignableFrom(superClass)) {