From 6d3d2904e52a7dd6c2bd7b306aa197cf8d56fba3 Mon Sep 17 00:00:00 2001 From: Sihua Ma Date: Thu, 16 Jan 2025 18:59:46 +0000 Subject: 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 --- core/java/android/appwidget/AppWidgetManager.java | 18 +++++++++++++----- 1 file 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); } } -- cgit v1.2.3-59-g8ed1b