Merge "Demote tryRemoveNotification crash to Log.wtf" into udc-qpr-dev

This commit is contained in:
Julia Tuttle
2023-06-13 18:59:50 +00:00
committed by Android (Google) Code Review

View File

@@ -61,6 +61,7 @@ import android.service.notification.NotificationListenerService.Ranking;
import android.service.notification.NotificationListenerService.RankingMap;
import android.service.notification.StatusBarNotification;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Pair;
import androidx.annotation.NonNull;
@@ -513,10 +514,16 @@ public class NotifCollection implements Dumpable, PipelineDumpable {
* @return True if the notification was removed, false otherwise.
*/
private boolean tryRemoveNotification(NotificationEntry entry) {
if (mNotificationSet.get(entry.getKey()) != entry) {
final NotificationEntry storedEntry = mNotificationSet.get(entry.getKey());
if (storedEntry == null) {
Log.wtf(TAG, "TRY REMOVE non-existent notification " + logKey(entry));
return false;
} else if (storedEntry != entry) {
throw mEulogizer.record(
new IllegalStateException("No notification to remove with key "
+ logKey(entry)));
new IllegalStateException("Mismatched stored and tryRemoved entries"
+ " for key " + logKey(entry) + ":"
+ " stored=@" + Integer.toHexString(storedEntry.hashCode())
+ " tryRemoved=@" + Integer.toHexString(entry.hashCode())));
}
if (!entry.isCanceled()) {