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

Commit 195b0905 authored by Jack Yu's avatar Jack Yu
Browse files

Fixed crash in telephony when underlying data service died

If the underlying data service is dead, do not create the data
connection because there is no data service to handle the
request.

Fix: 175331950
Test: Manual
Change-Id: I4499dc5c3748c0fada6a9e58046b2f6d52c01bd2
parent 7f705e2d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -182,8 +182,8 @@ public class NetworkRegistrationManager extends Handler {
        @Override
        public void binderDied() {
            // TODO: try to restart the service.
            logd("NetworkService(" + mComponentName +  " transport type "
                    + mTransportType + ") died.");
            logd("Network service " + mComponentName + " for transport type "
                    + AccessNetworkConstants.transportTypeToString(mTransportType) + " died.");
        }
    }

+2 −2
Original line number Diff line number Diff line
@@ -160,8 +160,8 @@ public class AccessNetworksManager extends Handler {
        @Override
        public void binderDied() {
            // TODO: try to rebind the service.
            loge("QualifiedNetworksService(" + mLastBoundPackageName + ") died.");
            String message = "Qualified Network Service Crashed," + mLastBoundPackageName;
            String message = "Qualified network service " + mLastBoundPackageName + " died.";
            loge(message);
            AnomalyReporter.reportAnomaly(mAnomalyUUID, message);
        }
    }
+4 −1
Original line number Diff line number Diff line
@@ -3217,7 +3217,10 @@ public class DataConnection extends StateMachine {
     */
    public void tearDownAll(String reason, @ReleaseNetworkType int releaseType,
                            Message onCompletedMsg) {
        if (DBG) log("tearDownAll: reason=" + reason + ", releaseType=" + releaseType);
        if (DBG) {
            log("tearDownAll: reason=" + reason + ", releaseType="
                    + DcTracker.releaseTypeToString(releaseType));
        }
        sendMessage(DataConnection.EVENT_DISCONNECT_ALL,
                new DisconnectParams(null, reason, releaseType, onCompletedMsg));
    }
+2 −1
Original line number Diff line number Diff line
@@ -121,9 +121,10 @@ public class DataConnectionReasons {
        DATA_ALREADY_CONNECTED(true),   // Data is already connected. No need to setup data again.
        ON_IWLAN(true),
        IN_ECBM(true),
        ON_OTHER_TRANSPORT(true);   // When data retry occurs, the given APN type's preferred
        ON_OTHER_TRANSPORT(true),   // When data retry occurs, the given APN type's preferred
                                    // transport might be already changed. In this case we
                                    // should disallow data retry.
        DATA_SERVICE_NOT_READY(true);   // Underlying data service is not bound.

        private boolean mIsHardReason;

+3 −3
Original line number Diff line number Diff line
@@ -145,9 +145,9 @@ public class DataServiceManager extends Handler {
        @Override
        public void binderDied() {
            // TODO: try to rebind the service.
            loge("DataService " + mLastBoundPackageName +  ", transport type " + mTransportType
                    + " died.");
            String message = "Iwlan Data Service Crashed," + mLastBoundPackageName;
            String message = "Data service " + mLastBoundPackageName +  " for transport type "
                    + AccessNetworkConstants.transportTypeToString(mTransportType) + " died.";
            loge(message);
            AnomalyReporter.reportAnomaly(mAnomalyUUID, message);
        }
    }
Loading