diff options
author | Catherine Shi <li.shi@gm.com> | 2020-07-08 17:05:24 -0700 |
---|---|---|
committer | Agatha Man <agathaman@google.com> | 2020-07-09 15:11:28 -0700 |
commit | 0c1b92192314a5eba892a6f63958acedcde8ce67 (patch) | |
tree | 077fe647d09a1279e62e73fe885050bae2aad5fa /services/accessibility | |
parent | b52353b790b08147b6d63a9669790162b769166a (diff) |
linkToDeath exception cause system server crash
java.util.NoSuchElementException: Death link does not exist
when linkToDeath has remote exception, unlinkToDeath will fail and
throw NoSuchElementException, catch it in AbstractAccessibilityServiceConnection
to avoid system server crash.
Bug: 157580692
Test: manual
Change-Id: I42ce3a458e04539d76555679279d1368e0c61ae0
Diffstat (limited to 'services/accessibility')
-rw-r--r-- | services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java index 6b852adce0f1..40a2816ee7de 100644 --- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java @@ -90,6 +90,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.NoSuchElementException; import java.util.Set; /** @@ -1179,7 +1180,11 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ /* ignore */ } if (mService != null) { - mService.unlinkToDeath(this, 0); + try { + mService.unlinkToDeath(this, 0); + } catch (NoSuchElementException e) { + Slog.e(LOG_TAG, "Failed unregistering death link"); + } mService = null; } |