diff --git a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java index 87876496bbce9..206682e46d47b 100644 --- a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java @@ -1343,8 +1343,11 @@ public class GnssLocationProvider extends AbstractLocationProvider implements // it is handled (otherwise the wake lock would be leaked). mWakeLock.acquire(WAKELOCK_TIMEOUT_MILLIS); boolean success = mHandler.post(() -> { - runnable.run(); - mWakeLock.release(); + try { + runnable.run(); + } finally { + mWakeLock.release(); + } }); if (!success) { mWakeLock.release();