diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java index f5047bf82905f..00f27b5061a5b 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UsageStatsService.java @@ -787,11 +787,16 @@ public class UsageStatsService extends SystemService implements return; } - final File usageStatsDeDir = new File(Environment.getDataSystemDeDirectory(userId), - "usagestats"); - if (!usageStatsDeDir.mkdirs() && !usageStatsDeDir.exists()) { - throw new IllegalStateException("Usage stats DE directory does not exist: " - + usageStatsDeDir.getAbsolutePath()); + final File deDir = Environment.getDataSystemDeDirectory(userId); + final File usageStatsDeDir = new File(deDir, "usagestats"); + if (!usageStatsDeDir.mkdir() && !usageStatsDeDir.exists()) { + if (deDir.exists()) { + Slog.e(TAG, "Failed to create " + usageStatsDeDir); + } else { + Slog.w(TAG, "User " + userId + " was already removed! Discarding pending events"); + pendingEvents.clear(); + } + return; } final File pendingEventsFile = new File(usageStatsDeDir, "pendingevents_" + System.currentTimeMillis());