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

Commit 38617a07 authored by Jack Yu's avatar Jack Yu
Browse files

Improved the anomaly report

Not fixing the issue, but improve the debug message
readability by specifically printing the duplicate
interface network name to help future debugging.

Bug: 255298635
Test: Manual
Merged-In: Ic933a355ccdd36daa235e8021e3b3d2d65bb181a
Change-Id: Ic933a355ccdd36daa235e8021e3b3d2d65bb181a
parent c211cbdf
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -2372,9 +2372,11 @@ public class DataNetwork extends StateMachine {
        mFailCause = getFailCauseFromDataCallResponse(resultCode, response);
        validateDataCallResponse(response);
        if (mFailCause == DataFailCause.NONE) {
            if (mDataNetworkController.isNetworkInterfaceExisting(response.getInterfaceName())) {
                logl("Interface " + response.getInterfaceName() + " already existing. Silently "
                        + "tear down now.");
            DataNetwork dataNetwork = mDataNetworkController.getDataNetworkByInterface(
                    response.getInterfaceName());
            if (dataNetwork != null) {
                logl("Interface " + response.getInterfaceName() + " has been already used by "
                        + dataNetwork + ". Silently tear down now.");
                // If this is a pre-5G data setup, that means APN database has some problems. For
                // example, different APN settings have the same APN name.
                if (response.getTrafficDescriptors().isEmpty()) {
+9 −6
Original line number Diff line number Diff line
@@ -2148,16 +2148,19 @@ public class DataNetworkController extends Handler {
    }

    /**
     * Check if there are existing networks having the same interface name.
     * Get data network by interface name.
     *
     * @param interfaceName The interface name to check.
     * @return {@code true} if the existing network has the same interface name.
     * @param interfaceName The network interface name.
     * @return The data network if found.
     */
    public boolean isNetworkInterfaceExisting(@NonNull String interfaceName) {
    @Nullable
    DataNetwork getDataNetworkByInterface(@NonNull String interfaceName) {
        return mDataNetworkList.stream()
                .filter(dataNetwork -> !dataNetwork.isDisconnecting())
                .anyMatch(dataNetwork -> interfaceName.equals(
                        dataNetwork.getLinkProperties().getInterfaceName()));
                .filter(dataNetwork -> interfaceName.equals(
                        dataNetwork.getLinkProperties().getInterfaceName()))
                .findFirst()
                .orElse(null);
    }

    /**