AnomalyReport catch any exception when try to read deviceConfig

If the app context, likely tests that didn't mock permission, doesn't have deviceConfig read permission, don't try to enforce server-side flag .

Fix: 247700179
Test: manual trigger + https://android-build.googleplex.com/builds/abtd/run/L02900000956490923
Change-Id: I8f0e84219057974649def4bcc312ae0dc38670d1
This commit is contained in:
Ling Ma
2022-09-20 00:30:38 -07:00
parent 981a340db7
commit 5579b3ba98

View File

@@ -105,17 +105,23 @@ public final class AnomalyReporter {
* @param carrierId the carrier of the id associated with this event.
*/
public static void reportAnomaly(@NonNull UUID eventId, String description, int carrierId) {
// Don't report if the server-side flag isn't loaded, as it implies other anomaly report
// related config hasn't loaded.
boolean isAnomalyReportEnabledFromServer = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_TELEPHONY, KEY_IS_TELEPHONY_ANOMALY_REPORT_ENABLED, false);
if (!isAnomalyReportEnabledFromServer) return;
if (sContext == null) {
Rlog.w(TAG, "AnomalyReporter not yet initialized, dropping event=" + eventId);
return;
}
// Don't report if the server-side flag isn't loaded, as it implies other anomaly report
// related config hasn't loaded.
try {
boolean isAnomalyReportEnabledFromServer = DeviceConfig.getBoolean(
DeviceConfig.NAMESPACE_TELEPHONY, KEY_IS_TELEPHONY_ANOMALY_REPORT_ENABLED,
false);
if (!isAnomalyReportEnabledFromServer) return;
} catch (Exception e) {
Rlog.w(TAG, "Unable to read device config, dropping event=" + eventId);
return;
}
TelephonyStatsLog.write(
TELEPHONY_ANOMALY_DETECTED,
carrierId,