From 115ed1bce52cc22b7f0cbcd3aaef0f8d80605bc2 Mon Sep 17 00:00:00 2001 From: Pinyao Ting Date: Fri, 4 Oct 2019 10:23:31 -0700 Subject: [PATCH] Make sure a pinned slice with given uri exists before calling unpin. Bug: 110411972 Change-Id: I7800e917d3c376d9e7ee54648c7771896fee2a0d Test: Manual --- .../com/android/server/slice/SliceManagerService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/slice/SliceManagerService.java b/services/core/java/com/android/server/slice/SliceManagerService.java index 5fd2ab87f410f..3b2f32479ed2b 100644 --- a/services/core/java/com/android/server/slice/SliceManagerService.java +++ b/services/core/java/com/android/server/slice/SliceManagerService.java @@ -180,8 +180,13 @@ public class SliceManagerService extends ISliceManager.Stub { verifyCaller(pkg); enforceAccess(pkg, uri); uri = maybeAddUserId(uri, Binder.getCallingUserHandle().getIdentifier()); - if (getPinnedSlice(uri).unpin(pkg, token)) { - removePinnedSlice(uri); + try { + PinnedSliceState slice = getPinnedSlice(uri); + if (slice != null && slice.unpin(pkg, token)) { + removePinnedSlice(uri); + } + } catch (IllegalStateException exception) { + Slog.w(TAG, exception.getMessage()); } }