Catch ServiceSpecificException instead of IllegalStateException.
The old NetworkManagementService methods to start clatd threw IllegalStateException, but the new netd methods throw ServiceSpecificException. Update the catch clauses so that if starting clatd fails, the system doesn't crash. Also stop logging stack traces but only include the exception message itself. Bug: 65674744 Test: atest FrameworksNetTests Test: connecting/disconnecting to v6-only wifi in a loop does not crash Change-Id: I4a9ec7f104712fbbe08f4f67e3288df03e8ed873
This commit is contained in:
@@ -175,8 +175,8 @@ public class Nat464Xlat extends BaseNetworkObserver {
|
||||
String addrStr = null;
|
||||
try {
|
||||
addrStr = mNetd.clatdStart(baseIface, mNat64Prefix.toString());
|
||||
} catch (RemoteException | IllegalStateException e) {
|
||||
Slog.e(TAG, "Error starting clatd on " + baseIface, e);
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
Slog.e(TAG, "Error starting clatd on " + baseIface + ": " + e);
|
||||
}
|
||||
mIface = CLAT_PREFIX + baseIface;
|
||||
mBaseIface = baseIface;
|
||||
@@ -203,7 +203,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
|
||||
try {
|
||||
mNMService.unregisterObserver(this);
|
||||
} catch (RemoteException | IllegalStateException e) {
|
||||
Slog.e(TAG, "Error unregistering clatd observer on " + mBaseIface, e);
|
||||
Slog.e(TAG, "Error unregistering clatd observer on " + mBaseIface + ": " + e);
|
||||
}
|
||||
mIface = null;
|
||||
mBaseIface = null;
|
||||
@@ -248,8 +248,8 @@ public class Nat464Xlat extends BaseNetworkObserver {
|
||||
Slog.i(TAG, "Stopping clatd on " + mBaseIface);
|
||||
try {
|
||||
mNetd.clatdStop(mBaseIface);
|
||||
} catch (RemoteException | IllegalStateException e) {
|
||||
Slog.e(TAG, "Error stopping clatd on " + mBaseIface, e);
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
Slog.e(TAG, "Error stopping clatd on " + mBaseIface + ": " + e);
|
||||
}
|
||||
|
||||
String iface = mIface;
|
||||
@@ -272,7 +272,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
|
||||
mNetd.resolverStartPrefix64Discovery(getNetId());
|
||||
mState = State.DISCOVERING;
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
Slog.e(TAG, "Error starting prefix discovery on netId " + getNetId(), e);
|
||||
Slog.e(TAG, "Error starting prefix discovery on netId " + getNetId() + ": " + e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -280,7 +280,7 @@ public class Nat464Xlat extends BaseNetworkObserver {
|
||||
try {
|
||||
mNetd.resolverStopPrefix64Discovery(getNetId());
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
Slog.e(TAG, "Error stopping prefix discovery on netId " + getNetId(), e);
|
||||
Slog.e(TAG, "Error stopping prefix discovery on netId " + getNetId() + ": " + e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user