From 9468b48565654a59017f19efbd3b442abd63c786 Mon Sep 17 00:00:00 2001 From: Zheng Zhang Date: Mon, 7 Aug 2017 13:51:23 -0700 Subject: [PATCH] Catch (and ignore) any timeout exceptions when releasing WakeLock Bug: 64424030 Change-Id: I4f1f71bc4f16d1485b360aec70c82818aa7510fb --- .../android/server/location/GnssLocationProvider.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index 551fb5a994319..f54f91557fed5 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -1059,8 +1059,15 @@ public class GnssLocationProvider implements LocationProviderInterface { // download tasks overrun. synchronized (mLock) { if (mDownloadXtraWakeLock.isHeld()) { - mDownloadXtraWakeLock.release(); - if (DEBUG) Log.d(TAG, "WakeLock released by handleDownloadXtraData()"); + // This wakelock may have time-out, if a timeout was specified. + // Catch (and ignore) any timeout exceptions. + try { + mDownloadXtraWakeLock.release(); + if (DEBUG) Log.d(TAG, "WakeLock released by handleDownloadXtraData()"); + } catch (Exception e) { + Log.i(TAG, "Wakelock timeout & release race exception in " + + "handleDownloadXtraData()", e); + } } else { Log.e(TAG, "WakeLock expired before release in " + "handleDownloadXtraData()");