From f0a8b9b7e226a0b2d72584e71f9509a95a90085d Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Mon, 3 May 2021 15:12:54 +0200
Subject: [PATCH] Avoiding crash if we're very early in the season and we're
 running out of soil temp (not forecasted)

---
 .../mamestrabrassicaemodel/MamestraBrassicaeModel.java     | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/main/java/no/nibio/vips/model/mamestrabrassicaemodel/MamestraBrassicaeModel.java b/src/main/java/no/nibio/vips/model/mamestrabrassicaemodel/MamestraBrassicaeModel.java
index c5ada87..317f7fc 100755
--- a/src/main/java/no/nibio/vips/model/mamestrabrassicaemodel/MamestraBrassicaeModel.java
+++ b/src/main/java/no/nibio/vips/model/mamestrabrassicaemodel/MamestraBrassicaeModel.java
@@ -94,7 +94,10 @@ public class MamestraBrassicaeModel extends I18nImpl implements Model{
         DecimalFormat dFormat = new DecimalFormat("###.##");
         List<Result> retVal = new ArrayList<>();
         Calendar cal = Calendar.getInstance(timeZone);
-        while(currentDate.before(endDate))
+        while(currentDate.before(endDate)
+                // Stopping if we're running out of soil temp too early
+                && !(accumulatedDayDegrees < THRESHOLD_TMDD_PUPAE && this.dataMatrix.getParamValueForDate(currentDate, DataMatrix.TJM10D) == null)
+                )
         {
             Double baseTemp = this.findT0(accumulatedDayDegrees);
             Double todayTemp = accumulatedDayDegrees < THRESHOLD_TMDD_PUPAE ? 
@@ -318,7 +321,7 @@ public class MamestraBrassicaeModel extends I18nImpl implements Model{
                     this.dataMatrix.getFirstDateWithParameterValue(DataMatrix.TJM10D) + ", last day with air temp = " + 
                     this.dataMatrix.getLastDateWithParameterValue(DataMatrix.TMD));
         }
-        
+        //System.out.println(this.dataMatrix.toCSV());
     }
 
     private Double findT0(Double accumulatedDayDegrees)
-- 
GitLab