OSDN Git Service

Ensure members are non-null in callback
authorChristofer Åkersten <akersten@google.com>
Tue, 13 Mar 2018 04:30:06 +0000 (13:30 +0900)
committerChristofer Åkersten <akersten@google.com>
Tue, 13 Mar 2018 06:23:34 +0000 (06:23 +0000)
Bug: 74570008
Test: runtest-cts-MediaComponents -r 100
Change-Id: I59590afae4e67fa8a90f8a7b4a6be58ce54e2806

media/java/android/media/session/MediaSessionManager.java

index 6b130cc..051321c 100644 (file)
@@ -775,8 +775,7 @@ public final class MediaSessionManager {
                         public void run() {
                             final Context context = mContext;
                             if (context != null) {
-                                ArrayList<MediaController> controllers
-                                        = new ArrayList<MediaController>();
+                                ArrayList<MediaController> controllers = new ArrayList<>();
                                 int size = tokens.size();
                                 for (int i = 0; i < size; i++) {
                                     controllers.add(new MediaController(context, tokens.get(i)));
@@ -814,10 +813,16 @@ public final class MediaSessionManager {
         private final ISessionTokensListener.Stub mStub = new ISessionTokensListener.Stub() {
             @Override
             public void onSessionTokensChanged(final List<Bundle> bundles) {
-                mExecutor.execute(() -> {
-                    List<SessionToken2> tokens = toTokenList(mContext, bundles);
-                    mListener.onSessionTokensChanged(tokens);
-                });
+                final Executor executor = mExecutor;
+                if (executor != null) {
+                    executor.execute(() -> {
+                        final Context context = mContext;
+                        final OnSessionTokensChangedListener listener = mListener;
+                        if (context != null && listener != null) {
+                            listener.onSessionTokensChanged(toTokenList(context, bundles));
+                        }
+                    });
+                }
             }
         };