diff --git a/src/main/java/io/github/isagroup/services/parsing/FeatureParser.java b/src/main/java/io/github/isagroup/services/parsing/FeatureParser.java index a6b8b4d..28f416e 100644 --- a/src/main/java/io/github/isagroup/services/parsing/FeatureParser.java +++ b/src/main/java/io/github/isagroup/services/parsing/FeatureParser.java @@ -134,7 +134,7 @@ private static Automation parseMapToAutomation(String featureName, Map ma } else { UsageLimit usageLimit = plan.getUsageLimits().get(planUsageLimitName); - Object value = planUsageLimitMap.get("value"); + Object value = null; + try{ + value = planUsageLimitMap.get("value"); + } + catch (NullPointerException e){ + throw new InvalidDefaultValueException("The usageLimit " + planUsageLimitName + + " does not have a valid value. Current valueType: " + + usageLimit.getValueType().toString() + "; Current value in plan " + plan.getName() + " is null"); + } + boolean isValueNull = (value == null); if (isValueNull){ @@ -251,7 +260,7 @@ public static void parsePaymentValue(Feature feature, String featureName, Map map, PricingManager pricingMana } private static void setAddOns(Map map, PricingManager pricingManager) { - Map addOnsMap = (Map) map.get("addOns"); + Map addOnsMap = null; + if (map.get("addOns") instanceof Map) { + addOnsMap = (Map) map.get("addOns"); + } if (addOnsMap == null) { return; @@ -356,7 +359,7 @@ private static void setAddOns(Map map, PricingManager pricingMan AddOn addOn = AddOnParser.parseMapToAddOn(addOnName, addOnMap, pricingManager); pricingManager.getAddOns().put(addOnName, addOn); - } catch (ClassCastException e) { + } catch (ClassCastException | NullPointerException | IllegalArgumentException e) { throw new PricingParsingException( "An error has occurred while parsing the add-on " + addOnName + ". Error: " + e.getMessage()); } diff --git a/src/main/java/io/github/isagroup/services/parsing/UsageLimitParser.java b/src/main/java/io/github/isagroup/services/parsing/UsageLimitParser.java index a4c73eb..a116f33 100644 --- a/src/main/java/io/github/isagroup/services/parsing/UsageLimitParser.java +++ b/src/main/java/io/github/isagroup/services/parsing/UsageLimitParser.java @@ -47,7 +47,7 @@ public static UsageLimit parseMapToUsageLimit(String limitName, Map