From 2b8f9007687fcd85918c9dab8ace7cb880e82922 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 1 Mar 2023 16:05:22 -0500 Subject: [PATCH] Add checks for null in NTDataPublisher (#820) --- .../dataflow/networktables/NTDataPublisher.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java index 3823ab6d7..0f7c3caa6 100644 --- a/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java +++ b/photon-core/src/main/java/org/photonvision/common/dataflow/networktables/NTDataPublisher.java @@ -180,10 +180,16 @@ public class NTDataPublisher implements CVPipelineResultConsumer { ts.bestTargetPosY.set(0); } - var fsp = result.inputAndOutputFrame.frameStaticProperties; - if (fsp.cameraCalibration != null) { - ts.cameraIntrinsicsPublisher.accept(fsp.cameraCalibration.getIntrinsicsArr()); - ts.cameraDistortionPublisher.accept(fsp.cameraCalibration.getExtrinsicsArr()); + // Something in the result can sometimes be null -- so check probably too many things + if (result != null + && result.inputAndOutputFrame != null + && result.inputAndOutputFrame.frameStaticProperties != null + && result.inputAndOutputFrame.frameStaticProperties.cameraCalibration != null) { + var fsp = result.inputAndOutputFrame.frameStaticProperties; + if (fsp.cameraCalibration != null) { + ts.cameraIntrinsicsPublisher.accept(fsp.cameraCalibration.getIntrinsicsArr()); + ts.cameraDistortionPublisher.accept(fsp.cameraCalibration.getExtrinsicsArr()); + } } else { ts.cameraIntrinsicsPublisher.accept(new double[] {}); ts.cameraDistortionPublisher.accept(new double[] {});