From adfc8b2d6fb4e5b95f578fcb07f434a78b8a01b4 Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Mon, 3 Jul 2023 05:11:20 -0400 Subject: [PATCH] #1586 Resolves issue in P25 message framer where after transmitting the current message the mDataUnitId is set to null and this causes an NPE when subsequent code is executed prior to shutdown of the channel. (#1593) Co-authored-by: Dennis Sheirer --- .../module/decode/p25/phase1/P25P1MessageFramer.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageFramer.java b/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageFramer.java index f71355ea..a75f4743 100644 --- a/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageFramer.java +++ b/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1MessageFramer.java @@ -322,17 +322,19 @@ public class P25P1MessageFramer implements Listener, IP25P1DataUnitDetect TSBKMessage tsbkMessage = TSBKMessageFactory.create(mChannelStatusProcessor.getDirection(), mDataUnitID, mBinaryMessage, mNAC, getTimestamp()); + int messageLength = mDataUnitID.getMessageLength(); + mMessageListener.receive(tsbkMessage); if(tsbkMessage.isLastBlock()) { - reset(mDataUnitID.getMessageLength()); + reset(messageLength); mTrailingDibitsToSuppress = 1; } else { - updateBitsProcessed(mDataUnitID.getMessageLength()); - mBinaryMessage = new CorrectedBinaryMessage(mDataUnitID.getMessageLength()); + updateBitsProcessed(messageLength); + mBinaryMessage = new CorrectedBinaryMessage(messageLength); if(mDataUnitID == P25P1DataUnitID.TRUNKING_SIGNALING_BLOCK_1) { mDataUnitID = P25P1DataUnitID.TRUNKING_SIGNALING_BLOCK_2;