From d2185bf42cfc567ccdda9b7bb3cc640afbfbd7b2 Mon Sep 17 00:00:00 2001 From: Ytai Ben-Tsvi Date: Mon, 21 Mar 2022 15:10:04 -0700 Subject: [PATCH] Check for null callback The modelData callback may be nullified before actually being invoked, e.g. when calling startRecognition() on an already running model, with a different callback. Fixes: 225768984 Test: Manual reproduction on the issue and then applying the fix and verifying that it works. Change-Id: I089061123c8cf12eef19fdf16bb3a2c106ea2438 --- .../com/android/server/soundtrigger/SoundTriggerHelper.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java index c8bcb83cae74e..ee2d235580102 100644 --- a/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java +++ b/services/voiceinteraction/java/com/android/server/soundtrigger/SoundTriggerHelper.java @@ -923,7 +923,10 @@ public class SoundTriggerHelper implements SoundTrigger.StatusListener { if (modelData != null && modelData.isModelStarted()) { modelData.setStoppedLocked(); try { - modelData.getCallback().onRecognitionPaused(); + IRecognitionStatusCallback callback = modelData.getCallback(); + if (callback != null) { + callback.onRecognitionPaused(); + } } catch (DeadObjectException e) { forceStopAndUnloadModelLocked(modelData, e); } catch (RemoteException e) {