Fix ErrorPolicyManager#getMostRecentDataFailCause()
- Defaults to DataFailCause.NONE, instead of NPE.
Bug: 245675105
Test: Update ErrorPolicyManagerTest#testErrorPolicyWithNumAttemptsPerFqdn.
Live test to reproduce and test fix.
Change-Id: I7d132550e8a540cf67fabdac8a9cf5b03a31c360
diff --git a/src/com/google/android/iwlan/ErrorPolicyManager.java b/src/com/google/android/iwlan/ErrorPolicyManager.java
index 0193c96..5cdf5cf 100644
--- a/src/com/google/android/iwlan/ErrorPolicyManager.java
+++ b/src/com/google/android/iwlan/ErrorPolicyManager.java
@@ -395,7 +395,10 @@
}
public synchronized int getMostRecentDataFailCause() {
- return getDataFailCause(mMostRecentError.mIwlanError);
+ if (mMostRecentError != null) {
+ return getDataFailCause(mMostRecentError.mIwlanError);
+ }
+ return DataFailCause.NONE;
}
/**
@@ -1063,8 +1066,8 @@
}
static class ApnWithIwlanError {
- final String mApn;
- final IwlanError mIwlanError;
+ @NonNull final String mApn;
+ @NonNull final IwlanError mIwlanError;
ApnWithIwlanError(String apn, IwlanError iwlanError) {
mApn = apn;
diff --git a/test/com/google/android/iwlan/ErrorPolicyManagerTest.java b/test/com/google/android/iwlan/ErrorPolicyManagerTest.java
index 038e3e3..13a51a3 100644
--- a/test/com/google/android/iwlan/ErrorPolicyManagerTest.java
+++ b/test/com/google/android/iwlan/ErrorPolicyManagerTest.java
@@ -711,6 +711,7 @@
.sendToTarget();
sleep(1000);
+ assertEquals(DataFailCause.NONE, mErrorPolicyManager.getMostRecentDataFailCause());
// IKE_PROTOCOL_ERROR_TYPE(15500)
// UE constructs 2 PLMN FQDNs.