summaryrefslogtreecommitdiff
path: root/services/accessibility
diff options
context:
space:
mode:
authorCatherine Shi <li.shi@gm.com>2020-07-08 17:05:24 -0700
committerAgatha Man <agathaman@google.com>2020-07-09 15:11:28 -0700
commit0c1b92192314a5eba892a6f63958acedcde8ce67 (patch)
tree077fe647d09a1279e62e73fe885050bae2aad5fa /services/accessibility
parentb52353b790b08147b6d63a9669790162b769166a (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.java7
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;
}