Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17c77536 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Fix issue #29532165: System Server Java Crashes in WiFi (RT Restart)

I really have no idea how this can be happening (we check
for a null intent before posting the args), but add another
check before dispatching to try to avoid it.

Change-Id: Ic704850c9750b6a078c49ea628189be568031086
parent ec6db57a
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1072,6 +1072,7 @@ public final class LoadedApk {
        final class Args extends BroadcastReceiver.PendingResult implements Runnable {
            private Intent mCurIntent;
            private final boolean mOrdered;
            private boolean mDispatched;

            public Args(Intent intent, int resultCode, String resultData, Bundle resultExtras,
                    boolean ordered, boolean sticky, int sendingUser) {
@@ -1096,9 +1097,13 @@ public final class LoadedApk {
                
                final IActivityManager mgr = ActivityManagerNative.getDefault();
                final Intent intent = mCurIntent;
                mCurIntent = null;
                if (intent == null) {
                    Log.wtf(TAG, "Null intent being dispatched, mDispatched=" + mDispatched);
                }

                if (receiver == null || mForgotten) {
                mCurIntent = null;
                mDispatched = true;
                if (receiver == null || intent == null || mForgotten) {
                    if (mRegistered && ordered) {
                        if (ActivityThread.DEBUG_BROADCAST) Slog.i(ActivityThread.TAG,
                                "Finishing null broadcast to " + mReceiver);