diff --git a/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java b/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java index d4299861e71e..4db2ba8d519a 100644 --- a/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java +++ b/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java @@ -367,7 +367,7 @@ private void setFieldValue(final Field field, final BaseCmd cmdObj, final Object final List listParam = new ArrayList(); final StringTokenizer st = new StringTokenizer(paramObj.toString(), ","); while (st.hasMoreTokens()) { - final String token = st.nextToken(); + final String token = st.nextToken().trim(); final CommandType listType = annotation.collectionType(); switch (listType) { case INTEGER: @@ -408,8 +408,13 @@ private void setFieldValue(final Field field, final BaseCmd cmdObj, final Object if (paramObj.toString().length() > annotation.length()) { s_logger.error("Value greater than max allowed length " + annotation.length() + " for param: " + field.getName()); throw new InvalidParameterValueException("Value greater than max allowed length " + annotation.length() + " for param: " + field.getName()); - } else { - field.set(cmdObj, paramObj.toString()); + } else{ + String trimmedParam = paramObj.toString().trim(); + if (trimmedParam.length() == 0){ + s_logger.error("Empty string or only spaces are not allowed for " + field.getName()); + throw new InvalidParameterValueException("Empty string or only spaces are not allowed for " + field.getName()); + } + field.set(cmdObj, trimmedParam); } } break;