From d92897d39fb9734cf2fd8c74ff1f6f3233933086 Mon Sep 17 00:00:00 2001 From: Zoltan Szatmary-Ban Date: Thu, 28 Aug 2014 13:13:34 +0100 Subject: [PATCH] Check for DeviceAdminInfo type before casting Race conditions seem to cause disabled list adapter items to trigger an onListItemClick event. Type of item object needs to be checked therefore. Bug:17187120 Change-Id: I469004081c89c9ba24dfa95872b54648a26213f9 --- src/com/android/settings/DeviceAdminSettings.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/DeviceAdminSettings.java b/src/com/android/settings/DeviceAdminSettings.java index 1ea98590d1..2eb6f99eb0 100644 --- a/src/com/android/settings/DeviceAdminSettings.java +++ b/src/com/android/settings/DeviceAdminSettings.java @@ -127,7 +127,12 @@ public class DeviceAdminSettings extends ListFragment { @Override public void onListItemClick(ListView l, View v, int position, long id) { - DeviceAdminInfo dpi = (DeviceAdminInfo) l.getAdapter().getItem(position); + Object o = l.getAdapter().getItem(position); + if (!(o instanceof DeviceAdminInfo)) { + // race conditions may cause this + return; + } + DeviceAdminInfo dpi = (DeviceAdminInfo) o; final Activity activity = getActivity(); final int userId = getUserId(dpi); if (userId == UserHandle.myUserId() || !isProfileOwner(dpi)) { -- 2.11.0