From b7de1ecbe470365c30bc6afcea5f5c560bc9c8c2 Mon Sep 17 00:00:00 2001 From: Anshul Gangwar Date: Mon, 17 Nov 2014 15:27:22 +0530 Subject: [PATCH] CLOUDSTACK-7930, CLOUDSTACK-7931: Do not allow to set invalid values for global settings which are of type integer and float --- .../configuration/ConfigurationManagerImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 2ba6ac1ae97b..865edf67df65 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -725,6 +725,21 @@ private String validateConfigurationValue(String name, String value, String scop type = c.getType(); } + String errMsg = null; + try { + if (type.equals(Integer.class)) { + errMsg = "There was error in trying to parse value: " + value + ". Please enter a valid integer value for parameter " + name; + Integer.parseInt(value); + } else if (type.equals(Float.class)) { + errMsg = "There was error in trying to parse value: " + value + ". Please enter a valid float value for parameter " + name; + Float.parseFloat(value); + } + } catch (Exception e) { + // catching generic exception as some throws NullPointerException and some throws NumberFormatExcpeion + s_logger.error(errMsg); + return errMsg; + } + if (value == null) { if (type.equals(Boolean.class)) { return "Please enter either 'true' or 'false'.";