From a48f3c4bd2581c884e4668d3f4a47b7b374900ee Mon Sep 17 00:00:00 2001 From: yueg Date: Thu, 27 Jul 2017 16:12:55 -0700 Subject: Fix NPE and ClassCastException in logging People API lookup error. Logger.get() returns a LoggingBindingsStub object instead of a LoggingBindingsImpl object under strict mode, and we should not log when it happens. WANT_LGTM=kedars LOG_STORAGE_INCREASE(GB/week): 0 Test: manual PiperOrigin-RevId: 163404058 Change-Id: Ibd466a811126c45eb26bc033367cc86a77066b3f --- java/com/android/dialer/logging/LoggingBindings.java | 7 +++++++ .../android/dialer/logging/LoggingBindingsStub.java | 7 +++++++ .../dialer/logging/people_api_lookup_error.proto | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 java/com/android/dialer/logging/people_api_lookup_error.proto (limited to 'java/com/android/dialer') diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java index 85ccfdfa1..ca9a0533e 100644 --- a/java/com/android/dialer/logging/LoggingBindings.java +++ b/java/com/android/dialer/logging/LoggingBindings.java @@ -80,4 +80,11 @@ public interface LoggingBindings { QuickContactBadge quickContact, InteractionEvent.Type interactionEvent, boolean shouldPerformClick); + + /** Logs People Api lookup result with error */ + void logPeopleApiLookupReportWithError( + long latency, int httpResponseCode, PeopleApiLookupError.Type errorType); + + /** Logs successful People Api lookup result */ + void logSuccessfulPeopleApiLookupReport(long latency, int httpResponseCode); } diff --git a/java/com/android/dialer/logging/LoggingBindingsStub.java b/java/com/android/dialer/logging/LoggingBindingsStub.java index 38929969c..2dbcc3ffb 100644 --- a/java/com/android/dialer/logging/LoggingBindingsStub.java +++ b/java/com/android/dialer/logging/LoggingBindingsStub.java @@ -54,4 +54,11 @@ public class LoggingBindingsStub implements LoggingBindings { QuickContactBadge quickContact, InteractionEvent.Type interactionEvent, boolean shouldPerformClick) {} + + @Override + public void logPeopleApiLookupReportWithError( + long latency, int httpResponseCode, PeopleApiLookupError.Type errorType) {} + + @Override + public void logSuccessfulPeopleApiLookupReport(long latency, int httpResponseCode) {} } diff --git a/java/com/android/dialer/logging/people_api_lookup_error.proto b/java/com/android/dialer/logging/people_api_lookup_error.proto new file mode 100644 index 000000000..e37d10aee --- /dev/null +++ b/java/com/android/dialer/logging/people_api_lookup_error.proto @@ -0,0 +1,19 @@ +syntax = "proto2"; + +package com.android.dialer.logging; +option java_package = "com.android.dialer.logging"; +option java_multiple_files = true; +option optimize_for = LITE_RUNTIME; + + + + +message PeopleApiLookupError { + enum Type { + UNKNOWN = 0; + HTTP_RESPONSE_ERROR = 1; + WRONG_KIND_VALUE = 2; + NO_ITEM_FOUND = 3; + JSON_PARSING_ERROR = 4; + } +} -- cgit v1.2.3