Files
frameworks_base/diff
Catherine Shi 0c1b921923 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
2020-07-09 15:11:28 -07:00

26 lines
1.2 KiB
Plaintext

diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
index fc43882..832dc91 100644
--- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
+++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java
@@ -67,6 +67,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.NoSuchElementException;
/**
* This class represents an accessibility client - either an AccessibilityService or a UiAutomation.
@@ -978,7 +979,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;
}