summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/media/MediaSessionService.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index bc0e8166fb42..84ec440dde0e 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -1134,8 +1134,19 @@ public class MediaSessionService extends SystemService implements Monitor {
if (cb == null) {
throw new IllegalArgumentException("Controller callback cannot be null");
}
- return createSessionInternal(pid, uid, resolvedUserId, packageName, cb, tag,
- sessionInfo).getSessionBinder();
+ MediaSessionRecord session = createSessionInternal(
+ pid, uid, resolvedUserId, packageName, cb, tag, sessionInfo);
+ if (session == null) {
+ throw new IllegalStateException("Failed to create a new session record");
+ }
+ ISession sessionBinder = session.getSessionBinder();
+ if (sessionBinder == null) {
+ throw new IllegalStateException("Invalid session record");
+ }
+ return sessionBinder;
+ } catch (Exception e) {
+ Slog.w(TAG, "Exception in creating a new session", e);
+ throw e;
} finally {
Binder.restoreCallingIdentity(token);
}