summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sihua Ma <sihua@google.com> 2025-01-16 18:59:46 +0000
committer Sihua Ma <sihua@google.com> 2025-01-17 14:52:58 -0800
commit6d3d2904e52a7dd6c2bd7b306aa197cf8d56fba3 (patch)
tree66e82f08340fcb689cc70e244fd2efae86a83a22
parent34303f98f0e2e203ae72bf7355c0e2e9e5fff972 (diff)
Wrap service connection in try-catch block
Exceptions might be thrown when binding/unbinding to the service which should be handled to avoid crash. Test: Manual Bug: 389127703 Flag: EXEMPT bug fix Change-Id: I6231733a9b59235612d1e9b8e6b6ed4995126600
-rw-r--r--core/java/android/appwidget/AppWidgetManager.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java
index 67ad4594599f..b54e17beb100 100644
--- a/core/java/android/appwidget/AppWidgetManager.java
+++ b/core/java/android/appwidget/AppWidgetManager.java
@@ -1684,10 +1684,14 @@ public class AppWidgetManager {
private IBinder mIBinder;
ConnectionTask(@NonNull FilterComparison filter) {
- mContext.bindService(filter.getIntent(),
- Context.BindServiceFlags.of(Context.BIND_AUTO_CREATE),
- mHandler::post,
- this);
+ try {
+ mContext.bindService(filter.getIntent(),
+ Context.BindServiceFlags.of(Context.BIND_AUTO_CREATE),
+ mHandler::post,
+ this);
+ } catch (Exception e) {
+ Log.e(TAG, "Error connecting to service in connection cache", e);
+ }
}
@Override
@@ -1737,7 +1741,11 @@ public class AppWidgetManager {
handleNext();
return;
}
- mContext.unbindService(this);
+ try {
+ mContext.unbindService(this);
+ } catch (Exception e) {
+ Log.e(TAG, "Error unbinding the cached connection", e);
+ }
mActiveConnections.values().remove(this);
}
}