Merge "Retry and ignore ConcurrentModificationException"

This commit is contained in:
Chiachang Wang 2021-07-27 09:02:56 +00:00 • committed by Gerrit Code Review
commit 93bda73970

View file

@ -3162,7 +3162,18 @@ public class ConnectivityService extends IConnectivityManager.Stub
}
private void dumpNetworkRequests(IndentingPrintWriter pw) {
for (NetworkRequestInfo nri : requestsSortedById()) {
NetworkRequestInfo[] infos = null;
while (infos == null) {
try {
infos = requestsSortedById();
} catch (ConcurrentModificationException e) {
// mNetworkRequests should only be accessed from handler thread, except dump().
// As dump() is never called in normal usage, it would be needlessly expensive
// to lock the collection only for its benefit. Instead, retry getting the
// requests if ConcurrentModificationException is thrown during dump().
}
}
for (NetworkRequestInfo nri : infos) {
pw.println(nri.toString());
}
}