Don't reuse StringBuilder outside of lock when dumping ANR.

The ANR dumping code was reusing the shared StringBuilder while
not holding the ActivityManagerService lock.  As a result, other
threads could sweep in and clobber the ANR information.
We don't want to hold the lock here, so just create a new StringBuilder.

Change-Id: I0d91af55f5c123102cfab2cd97035491efed59c0
This commit is contained in:
Jeff Brown
2012-04-10 14:26:26 -07:00
parent 27fd3420ac
commit deb6ed8c2e

View File

@ -3181,7 +3181,7 @@ public final class ActivityManagerService extends ActivityManagerNative
}
// Log the ANR to the main log.
StringBuilder info = mStringBuilder;
StringBuilder info = new StringBuilder();
info.setLength(0);
info.append("ANR in ").append(app.processName);
if (activity != null && activity.shortComponentName != null) {