From 201c631992f883aa411c5626dc9df071b59c275a Mon Sep 17 00:00:00 2001 From: Jeffrey Huang Date: Thu, 20 Feb 2020 15:19:07 -0800 Subject: [PATCH] Catch IllegalStateException in StatsManager StatsManagerService throws IllegalStateException when statsd is not available. This causes GMSCore to crash. Bug: 149914783 Test: Manual, verify play store no longer crashes Change-Id: I45cd679600ccfdb7977ecfd4437b62f56034fed2 --- .../framework/java/android/app/StatsManager.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apex/statsd/framework/java/android/app/StatsManager.java b/apex/statsd/framework/java/android/app/StatsManager.java index 526d17ff0d715..e637187f23be7 100644 --- a/apex/statsd/framework/java/android/app/StatsManager.java +++ b/apex/statsd/framework/java/android/app/StatsManager.java @@ -159,6 +159,9 @@ public final class StatsManager { throw new StatsUnavailableException("could not connect", e); } catch (SecurityException e) { throw new StatsUnavailableException(e.getMessage(), e); + } catch (IllegalStateException e) { + Log.e(TAG, "Failed to addConfig in statsmanager"); + throw new StatsUnavailableException(e.getMessage(), e); } } } @@ -195,6 +198,9 @@ public final class StatsManager { throw new StatsUnavailableException("could not connect", e); } catch (SecurityException e) { throw new StatsUnavailableException(e.getMessage(), e); + } catch (IllegalStateException e) { + Log.e(TAG, "Failed to removeConfig in statsmanager"); + throw new StatsUnavailableException(e.getMessage(), e); } } } @@ -391,6 +397,9 @@ public final class StatsManager { throw new StatsUnavailableException("could not connect", e); } catch (SecurityException e) { throw new StatsUnavailableException(e.getMessage(), e); + } catch (IllegalStateException e) { + Log.e(TAG, "Failed to getReports in statsmanager"); + throw new StatsUnavailableException(e.getMessage(), e); } } } @@ -428,6 +437,9 @@ public final class StatsManager { throw new StatsUnavailableException("could not connect", e); } catch (SecurityException e) { throw new StatsUnavailableException(e.getMessage(), e); + } catch (IllegalStateException e) { + Log.e(TAG, "Failed to getStatsMetadata in statsmanager"); + throw new StatsUnavailableException(e.getMessage(), e); } } } @@ -469,6 +481,9 @@ public final class StatsManager { + "registered experiment IDs"); } throw new StatsUnavailableException("could not connect", e); + } catch (IllegalStateException e) { + Log.e(TAG, "Failed to getRegisteredExperimentIds in statsmanager"); + throw new StatsUnavailableException(e.getMessage(), e); } } }