Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1c70978 authored by Varun Shah's avatar Varun Shah Committed by android-build-team Robot
Browse files

Fix bootloop issue with UsageStatsService.

When the configurations are being read from the proto file, if a
duplicate locale is found in the list, an exception is thrown from
LocaleList which causes the UsageStatsService to crash. Instead, we'll
now log a WTF if duplicate locales are found when parsing the
configuration proto and not add the duplicate locale to the list.

Bug: 140197723
Test: atest UsageStatsDatabaseTest
Change-Id: Ie178b3cfdd45e6771a7c0e4bb42e47f79b5c30cc
(cherry picked from commit 5d9031db)
(cherry picked from commit 669d886c)
parent 5fd590d3
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -1222,7 +1222,15 @@ public final class Configuration implements Parcelable, Comparable<Configuration
                                                        .setVariant(variant)
                                                        .setScript(script)
                                                        .build();
                                // Log a WTF here if a repeated locale is found to avoid throwing an
                                // exception in system server when LocaleList is created below
                                final int inListIndex = list.indexOf(locale);
                                if (inListIndex != -1) {
                                    Slog.wtf(TAG, "Repeated locale (" + list.get(inListIndex) + ")"
                                            + " found when trying to add: " + locale.toString());
                                } else {
                                    list.add(locale);
                                }
                            } catch (IllformedLocaleException e) {
                                Slog.e(TAG, "readFromProto error building locale with: "
                                        + "language-" + language + ";country-" + country