From 3e6e78b9f0a6c486849f05d92e13481d8b3dc524 Mon Sep 17 00:00:00 2001 From: Alex Dadukin Date: Tue, 15 Nov 2022 11:12:43 +0000 Subject: [PATCH] Rethrow RemoteExceptions from MediaRouter2 instead of logging them Bug: b/259025372 Test: atest MediaRouter2Test Change-Id: I90d4197555e37ac5b484b36a594ead4390334e64 --- media/java/android/media/MediaRouter2.java | 12 ++++++------ .../server/media/MediaRouter2ServiceImpl.java | 3 +++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java index 161ea255dfb46..a28ea32bf3ce9 100644 --- a/media/java/android/media/MediaRouter2.java +++ b/media/java/android/media/MediaRouter2.java @@ -305,7 +305,7 @@ public final class MediaRouter2 { currentSystemRoutes = mMediaRouterService.getSystemRoutes(); currentSystemSessionInfo = mMediaRouterService.getSystemSessionInfo(); } catch (RemoteException ex) { - Log.e(TAG, "Unable to get current system's routes / session info", ex); + ex.rethrowFromSystemServer(); } if (currentSystemRoutes == null || currentSystemRoutes.isEmpty()) { @@ -407,14 +407,14 @@ public final class MediaRouter2 { mMediaRouterService.registerRouter2(stub, mPackageName); mStub = stub; } catch (RemoteException ex) { - Log.e(TAG, "registerRouteCallback: Unable to register MediaRouter2.", ex); + ex.rethrowFromSystemServer(); } } if (mStub != null && updateDiscoveryPreferenceIfNeededLocked()) { try { mMediaRouterService.setDiscoveryRequestWithRouter2(mStub, mDiscoveryPreference); } catch (RemoteException ex) { - Log.e(TAG, "registerRouteCallback: Unable to set discovery request.", ex); + ex.rethrowFromSystemServer(); } } } @@ -454,7 +454,7 @@ public final class MediaRouter2 { try { mMediaRouterService.unregisterRouter2(mStub); } catch (RemoteException ex) { - Log.e(TAG, "Unable to unregister media router.", ex); + ex.rethrowFromSystemServer(); } mStub = null; } @@ -1769,7 +1769,7 @@ public final class MediaRouter2 { try { mMediaRouterService.releaseSessionWithRouter2(mStub, getId()); } catch (RemoteException ex) { - Log.e(TAG, "Unable to release session", ex); + ex.rethrowFromSystemServer(); } } @@ -1787,7 +1787,7 @@ public final class MediaRouter2 { try { mMediaRouterService.unregisterRouter2(mStub); } catch (RemoteException ex) { - Log.e(TAG, "releaseInternal: Unable to unregister media router.", ex); + ex.rethrowFromSystemServer(); } mStub = null; } diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index f5ec880ed2356..998fe369e2f08 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -348,6 +348,9 @@ class MediaRouter2ServiceImpl { @NonNull String uniqueSessionId, int volume) { Objects.requireNonNull(router, "router must not be null"); Objects.requireNonNull(uniqueSessionId, "uniqueSessionId must not be null"); + if (TextUtils.isEmpty(uniqueSessionId)) { + throw new IllegalArgumentException("uniqueSessionId must not be empty"); + } final long token = Binder.clearCallingIdentity(); try {