🧪 Regression Guard: Fix cascading crashes during service cleanup#676
🧪 Regression Guard: Fix cascading crashes during service cleanup#676yuga-hashimoto wants to merge 1 commit into
Conversation
Wraps `context.stopService(intent)` inside nested try-catch blocks when triggered from exception handlers (like IllegalStateException or SecurityException) after failed service start requests. This prevents the app from crashing if the system also rejects the background stop request. Co-authored-by: yuga-hashimoto <74749461+yuga-hashimoto@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
🧪 Regression Guard: Fix cascading crashes during service cleanup
What
Wrapped fallback
context.stopService(intent)calls insidetry-catchblocks within the exception handlers ofHotwordService.kt,SessionForegroundService.kt, andNodeForegroundService.kt.Why
In recent Android versions, interacting with services from the background can be strict. The app attempted to recover from failed
startForegroundService(orstartService) calls by sending astopServicerequest. However, if the OS also rejects the background stop request, it throws another exception, leading to a cascading crash. By catching these secondary exceptions, we prevent the app from unexpectedly terminating while still logging the failure.Verification
./gradlew app:testStandardDebugUnitTest), which passed successfully.PR created automatically by Jules for task 4102847720372877507 started by @yuga-hashimoto