Index: trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2Datum.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2Datum.java	(revision 14439)
+++ trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2Datum.java	(revision 14440)
@@ -3,4 +3,5 @@
 
 import java.io.IOException;
+import java.util.Objects;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -25,5 +26,5 @@
     public NTV2Datum(String name, String proj4Id, Ellipsoid ellps, NTV2GridShiftFileWrapper nadgrids) {
         super(name, proj4Id, ellps);
-        this.nadgrids = nadgrids;
+        this.nadgrids = Objects.requireNonNull(nadgrids);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2GridShiftFileWrapper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2GridShiftFileWrapper.java	(revision 14439)
+++ trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2GridShiftFileWrapper.java	(revision 14440)
@@ -6,5 +6,8 @@
 import java.util.Collections;
 import java.util.Map;
+import java.util.Objects;
 import java.util.TreeMap;
+
+import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -43,5 +46,5 @@
      */
     public NTV2GridShiftFileWrapper(String filename) {
-        this.gridFileName = filename;
+        this.gridFileName = Objects.requireNonNull(filename);
     }
 
@@ -65,4 +68,7 @@
                 }
             }
+            if (instance == null) {
+                Logging.error("Unable to find NTV2 grid shift file for {0}", gridFileName);
+            }
         }
         return instance;
