From e0f3e348993aa980ae4d9dc200d5972a4123418b Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 25 May 2022 11:53:00 -0400 Subject: [PATCH] Attempt to get service name in start foreground exception stack trace. --- .../main/java/org/signal/core/util/ExceptionUtil.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core-util/src/main/java/org/signal/core/util/ExceptionUtil.java b/core-util/src/main/java/org/signal/core/util/ExceptionUtil.java index 43f0b23e6..a9f1730a5 100644 --- a/core-util/src/main/java/org/signal/core/util/ExceptionUtil.java +++ b/core-util/src/main/java/org/signal/core/util/ExceptionUtil.java @@ -72,11 +72,17 @@ public final class ExceptionUtil { System.arraycopy(originalTrace, 0, combinedTrace, 0, originalTrace.length); - CharSequence message = Scrubber.scrub(original.getMessage() != null ? original.getMessage() : "null"); + String message = Scrubber.scrub(original.getMessage() != null ? original.getMessage() : "null").toString(); + if (message.startsWith("Context.startForegroundService")) { + try { + String service = message.substring(message.lastIndexOf('.') + 1, message.length() - 1); + message = service + " did not call startForeground"; + } catch (Exception ignored) {} + } combinedTrace[originalTrace.length] = new StackTraceElement("[[ ↑↑ Original Trace ↑↑ ]]", "", "", 0); combinedTrace[originalTrace.length + 1] = new StackTraceElement("[[ ↓↓ Exception Message ↓↓ ]]", "", "", 0); - combinedTrace[originalTrace.length + 2] = new StackTraceElement(message.toString(), "", "", 0); + combinedTrace[originalTrace.length + 2] = new StackTraceElement(message, "", "", 0); original.setStackTrace(combinedTrace); return original;