Make RankingHelper$Record.groups thread-safe
Symptom:
System crash is happened due to NPE at RankingHelper.writeXml.
Root cause:
RankingHelper$Record.groups.values() returned null. Record.groups
is an ArrayMap and this is not thread-safe. When multiple clients
call NotificationManager#createNotificationChannelGroup and
deleteNotificationChannelGroup at a same time, Record.groups is
changed by multiple threads simultaneously. As a result, this
ArrayMap object gets broken.
Solution:
Use ConcurrentHashMap instead of ArrayMap.
Test: runtest systemui-notification, test app
Bug:
62557189
Author: Tetsutoki Shiozawa <tetsutoki.shiozawa@sony.com>
Change-Id: I2261dbd1ace4915695528595b9d14d68e5bec55d