From 98634e228f4f96a9c67e52e45c0cce4ebbac94f3 Mon Sep 17 00:00:00 2001
From: brutzman <brutzman@nps.edu>
Date: Tue, 31 Dec 2024 14:45:04 -0800
Subject: [PATCH] handle NPE

---
 .../vrml/renderer/ogl/input/NavigationProcessor.java | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/java/org/web3d/vrml/renderer/ogl/input/NavigationProcessor.java b/src/java/org/web3d/vrml/renderer/ogl/input/NavigationProcessor.java
index 74d30fa4..8c7eae7c 100644
--- a/src/java/org/web3d/vrml/renderer/ogl/input/NavigationProcessor.java
+++ b/src/java/org/web3d/vrml/renderer/ogl/input/NavigationProcessor.java
@@ -2361,11 +2361,21 @@ public class NavigationProcessor implements NodeUpdateListener, OGLTransformNode
 
         @SuppressWarnings("unchecked")
         List<SceneGraphPath> pick_results = (List<SceneGraphPath>) terrainPicker.foundPaths;
-
+        
+        if (pick_results == null)
+        {
+            System.err.println ("*** Xj3D internal error: NavigationProcessor checkCollisions() pick_results == null");
+        }
+        else
         for (int i = 0; (i < collidePicker.pickCount) && !real_collision; i++) {
             // Firstly, check the path to see if this is eligible for picking
             // Look at the picked item first, then do a depth traversal of the
             // path from the root down to the the node.
+            
+            if (pick_results.get(i) == null)
+            {
+                System.err.println ("*** Xj3D internal error: NavigationProcessor checkCollisions() pick_results.get(" + i + ") == null");
+            }
             SceneGraphPath path = pick_results.get(i);
 
             Node end = path.getTerminalNode();
-- 
GitLab