From 3dace58c20aa703523d6f893dc17018cd9e6f15f Mon Sep 17 00:00:00 2001 From: Dennis Sheirer Date: Mon, 3 Jul 2023 05:08:52 -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. --- .../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 f71355ea9..a75f4743d 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 @@ private void dispatchMessage() 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;