diff options
| -rw-r--r-- | services/core/java/com/android/server/media/MediaSessionService.java | 15 |
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); } |