Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f829a78f authored by Jacek Surazski's avatar Jacek Surazski
Browse files

add exception message to ApplicationErrorReport

useful signal for clustering
parent 0781df94
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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);
+9 −2
Original line number Diff line number Diff line
@@ -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();