From 307984c6ccb07cea00adee6ac8f4438eebef8bd8 Mon Sep 17 00:00:00 2001
From: Peter Alexander <>
Date: Sun, 7 Aug 2022 21:43:48 +0100
Subject: [PATCH] Some additional null checking

---
 src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java |  7 ++++++-
 src/ac/ed/lurg/demand/AbstractDemandManager.java     | 10 ++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java b/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java
index ae3f487b..bd0125ea 100644
--- a/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java
+++ b/src/ac/ed/lurg/country/gams/GamsRasterOptimiser.java
@@ -376,7 +376,12 @@ public class GamsRasterOptimiser {
 
 				IrrigationItem irrigItem = irrigRaster.get(key);
 
-				int clusterId = mapping.get(key).getInt();
+				IntegerRasterItem clusterItem = mapping.get(key);
+				if (clusterItem == null) {
+					LogWriter.printlnError("Warning: GamsRasterOptimiser no cluster for key" + key);
+					continue;
+				}
+				int clusterId = clusterItem.getInt();
 
 				YieldResponsesItem aggYResp = aggregatedYields.lazyGet(clusterId);
 				LandUseItem aggLandUse = aggregatedAreas.lazyGet(clusterId);
diff --git a/src/ac/ed/lurg/demand/AbstractDemandManager.java b/src/ac/ed/lurg/demand/AbstractDemandManager.java
index 20d9c9a8..755c4f2c 100644
--- a/src/ac/ed/lurg/demand/AbstractDemandManager.java
+++ b/src/ac/ed/lurg/demand/AbstractDemandManager.java
@@ -41,8 +41,14 @@ public abstract class AbstractDemandManager implements Serializable {
 
 		for (SingleCountry c : compositeCountryManager.getAllForCompositeCountry(cc)) {
 
-			foodDemandMap = getFoodDemand(c, year, prices, outputGamsDemand);
-
+			try {
+				foodDemandMap = getFoodDemand(c, year, prices, outputGamsDemand);
+			} catch (Exception e) {
+				LogWriter.printlnError("Error: AbstractDemandManager not including " + c + " due to exception");
+				LogWriter.print(e);
+				continue;
+			}
+				
 			for (CommodityType commodity : CommodityType.getAllFoodItems()) {
 
 				Double food = foodDemandMap.get(commodity);
-- 
GitLab