From 7c6430562e69bdd2883744e751b8fd26c141dfd0 Mon Sep 17 00:00:00 2001 From: "David G. Young" Date: Wed, 6 Dec 2017 19:46:12 -0500 Subject: [PATCH 1/3] Fix NPE crash on null mExtraBaconDataTracker --- src/main/java/org/altbeacon/beacon/service/ScanJob.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/altbeacon/beacon/service/ScanJob.java b/src/main/java/org/altbeacon/beacon/service/ScanJob.java index fcd01e4fb..1d6088640 100644 --- a/src/main/java/org/altbeacon/beacon/service/ScanJob.java +++ b/src/main/java/org/altbeacon/beacon/service/ScanJob.java @@ -51,6 +51,7 @@ public class ScanJob extends JobService { @Override public boolean onStartJob(final JobParameters jobParameters) { mScanHelper = new ScanHelper(this); + initialzeScanHelper(); if (jobParameters.getJobId() == IMMEDIATE_SCAN_JOB_ID) { LogManager.i(TAG, "Running immediate scan job: instance is "+this); } @@ -164,8 +165,7 @@ private void stopScanning() { LogManager.d(TAG, "Scanning stopped"); } - // Returns true of scanning actually was started, false if it did not need to be - private boolean restartScanning() { + private void initialzeScanHelper() { mScanState = ScanState.restore(ScanJob.this); mScanState.setLastScanStartTimeMillis(System.currentTimeMillis()); mScanHelper.setMonitoringStatus(mScanState.getMonitoringStatus()); @@ -175,10 +175,13 @@ private boolean restartScanning() { if (mScanHelper.getCycledScanner() == null) { mScanHelper.createCycledLeScanner(mScanState.getBackgroundMode(), null); } + } + + // Returns true of scanning actually was started, false if it did not need to be + private boolean restartScanning() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { mScanHelper.stopAndroidOBackgroundScan(); } - long scanPeriod = mScanState.getBackgroundMode() ? mScanState.getBackgroundScanPeriod() : mScanState.getForegroundScanPeriod(); long betweenScanPeriod = mScanState.getBackgroundMode() ? mScanState.getBackgroundBetweenScanPeriod() : mScanState.getForegroundBetweenScanPeriod(); mScanHelper.getCycledScanner().setScanPeriods(scanPeriod, From b88e76111177d5a7a15d8d7306229e3f614c9d5e Mon Sep 17 00:00:00 2001 From: "David G. Young" Date: Wed, 6 Dec 2017 19:51:54 -0500 Subject: [PATCH 2/3] move construction of mScanHelper to initialization method --- src/main/java/org/altbeacon/beacon/service/ScanJob.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/altbeacon/beacon/service/ScanJob.java b/src/main/java/org/altbeacon/beacon/service/ScanJob.java index 1d6088640..18482ffd2 100644 --- a/src/main/java/org/altbeacon/beacon/service/ScanJob.java +++ b/src/main/java/org/altbeacon/beacon/service/ScanJob.java @@ -50,7 +50,6 @@ public class ScanJob extends JobService { @Override public boolean onStartJob(final JobParameters jobParameters) { - mScanHelper = new ScanHelper(this); initialzeScanHelper(); if (jobParameters.getJobId() == IMMEDIATE_SCAN_JOB_ID) { LogManager.i(TAG, "Running immediate scan job: instance is "+this); @@ -166,6 +165,7 @@ private void stopScanning() { } private void initialzeScanHelper() { + mScanHelper = new ScanHelper(this); mScanState = ScanState.restore(ScanJob.this); mScanState.setLastScanStartTimeMillis(System.currentTimeMillis()); mScanHelper.setMonitoringStatus(mScanState.getMonitoringStatus()); From 39d0ba7adb2fd760de5d9a26d28829ad50e8527c Mon Sep 17 00:00:00 2001 From: "David G. Young" Date: Wed, 6 Dec 2017 19:53:48 -0500 Subject: [PATCH 3/3] update changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 093ecad05..81339830b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ Bug Fixes: - Fix performance problems when using identifiers 3-15 bytes caused by Identifier#toHexString(). (#615, David G. Young) + - Fix NPE on ExtraBeaconDataTracker (#626, David G. Young) ### 2.12.3 / 2017-10-14