From 48809464a74fffc5abf027b8e6d434d941c8095e Mon Sep 17 00:00:00 2001 From: Michael Hamann Date: Sun, 17 Jan 2016 15:56:03 +0100 Subject: [PATCH] McsService: only send to the output stream if it is alive The output stream handler thread might not be alive, this occurs reproducibly when connecting fails and a tear down is initiated. Messages shouldn't be sent when the output handler thread is not alive (triggers an expection which is catched but logged), this check avoids this unless some special race condition occurs. Dropping the messages shouldn't hurt (they were dropped anyway). --- .../src/main/java/org/microg/gms/gcm/McsService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java b/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java index efbbb4b3..96f37525 100644 --- a/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java +++ b/play-services-core/src/main/java/org/microg/gms/gcm/McsService.java @@ -323,7 +323,7 @@ public class McsService extends Service implements Handler.Callback { private void sendOutputStream(int what, Object obj) { McsOutputStream os = outputStream; - if (os != null) { + if (os != null && os.isAlive()) { Handler outputHandler = os.getHandler(); if (outputHandler != null) outputHandler.sendMessage(outputHandler.obtainMessage(what, obj));