Fixed NPE
Fixed crash when two graceful tear down performed on the same
data network.
Bug: 233284182
Test: atest DataNetworkControllerTest + basic testing
Merged-In: I596c8174ab6f3ef595067b10b7e43598a79260dd
Change-Id: I596c8174ab6f3ef595067b10b7e43598a79260dd
diff --git a/src/java/com/android/internal/telephony/data/DataNetworkController.java b/src/java/com/android/internal/telephony/data/DataNetworkController.java
index be91205..09f33a1 100644
--- a/src/java/com/android/internal/telephony/data/DataNetworkController.java
+++ b/src/java/com/android/internal/telephony/data/DataNetworkController.java
@@ -3394,8 +3394,12 @@
+ (mRegisteredImsFeatures.contains(ImsFeature.FEATURE_RCS)
? "registered" : "not registered")
);
- mPendingImsDeregDataNetworks.put(dataNetwork,
- dataNetwork.tearDownWhenConditionMet(reason, deregDelay));
+ Runnable runnable = dataNetwork.tearDownWhenConditionMet(reason, deregDelay);
+ if (runnable != null) {
+ mPendingImsDeregDataNetworks.put(dataNetwork, runnable);
+ } else {
+ log(dataNetwork + " is being torn down already.");
+ }
} else {
// Graceful tear down is not turned on. Tear down the network immediately.
log("tearDownGracefully: Safe to tear down " + dataNetwork);