From 87e098069554592a4d63b20b467273f4b00c8c4e Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 4 Jul 2021 09:35:49 +0200 Subject: [PATCH] Bugfix: prevent NPE on endRecording (race condition). --- .../opentracks/services/TrackRecordingService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 5facfe878..dead15483 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -743,8 +743,13 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand tmpLastTrackPoint.setLatitude(lastTrackPoint.getLatitude()); } - altitudeSumManager.fill(tmpLastTrackPoint); - remoteSensorManager.fill(tmpLastTrackPoint); + BluetoothRemoteSensorManager localRemoteSensorManager = this.remoteSensorManager; + AltitudeSumManager localAltitudeSumManager = this.altitudeSumManager; + if (localAltitudeSumManager != null && localRemoteSensorManager != null) { + // onEndRecording the managers might already be set to null. + localAltitudeSumManager.fill(tmpLastTrackPoint); + localRemoteSensorManager.fill(tmpLastTrackPoint); + } tmpTrackStatisticsUpdater.addTrackPoint(tmpLastTrackPoint, recordingDistanceInterval); track.setTrackStatistics(tmpTrackStatisticsUpdater.getTrackStatistics());