Merge change 3936 into donut
* changes: add exception message to ApplicationErrorReport
This commit is contained in:
@@ -150,6 +150,11 @@ public class ApplicationErrorReport implements Parcelable {
|
||||
*/
|
||||
public String exceptionClassName;
|
||||
|
||||
/**
|
||||
* Message stored in the exception.
|
||||
*/
|
||||
public String exceptionMessage;
|
||||
|
||||
/**
|
||||
* File which the exception was thrown from.
|
||||
*/
|
||||
@@ -181,6 +186,7 @@ public class ApplicationErrorReport implements Parcelable {
|
||||
*/
|
||||
public CrashInfo(Parcel in) {
|
||||
exceptionClassName = in.readString();
|
||||
exceptionMessage = in.readString();
|
||||
throwFileName = in.readString();
|
||||
throwClassName = in.readString();
|
||||
throwMethodName = in.readString();
|
||||
@@ -192,6 +198,7 @@ public class ApplicationErrorReport implements Parcelable {
|
||||
*/
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeString(exceptionClassName);
|
||||
dest.writeString(exceptionMessage);
|
||||
dest.writeString(throwFileName);
|
||||
dest.writeString(throwClassName);
|
||||
dest.writeString(throwMethodName);
|
||||
@@ -203,6 +210,7 @@ public class ApplicationErrorReport implements Parcelable {
|
||||
*/
|
||||
public void dump(Printer pw, String prefix) {
|
||||
pw.println(prefix + "exceptionClassName: " + exceptionClassName);
|
||||
pw.println(prefix + "exceptionMessage: " + exceptionMessage);
|
||||
pw.println(prefix + "throwFileName: " + throwFileName);
|
||||
pw.println(prefix + "throwClassName: " + throwClassName);
|
||||
pw.println(prefix + "throwMethodName: " + throwMethodName);
|
||||
|
||||
@@ -8218,12 +8218,19 @@ public final class ActivityManagerService extends ActivityManagerNative implemen
|
||||
report.time = crashData.getTime();
|
||||
report.crashInfo.stackTrace = throwData.toString();
|
||||
|
||||
// extract the source of the exception, useful for report
|
||||
// clustering
|
||||
// Extract the source of the exception, useful for report
|
||||
// clustering. Also extract the "deepest" non-null exception
|
||||
// message.
|
||||
String exceptionMessage = throwData.getMessage();
|
||||
while (throwData.getCause() != null) {
|
||||
throwData = throwData.getCause();
|
||||
String msg = throwData.getMessage();
|
||||
if (msg != null && msg.length() > 0) {
|
||||
exceptionMessage = msg;
|
||||
}
|
||||
}
|
||||
StackTraceElementData trace = throwData.getStackTrace()[0];
|
||||
report.crashInfo.exceptionMessage = exceptionMessage;
|
||||
report.crashInfo.exceptionClassName = throwData.getType();
|
||||
report.crashInfo.throwFileName = trace.getFileName();
|
||||
report.crashInfo.throwClassName = trace.getClassName();
|
||||
|
||||
Reference in New Issue
Block a user