Fix NullPointerException in KernelCpuThreadReaders.

If KernelCpuThreadReader init failed, then the null instance was passed
to KernelCpuThreadReaderDiff, which then failed when invoked.

Test: Build only (bug is difficult to reproduce).
Bug: 150988957

Change-Id: Id46d466b931d816dda85c4f068a4bec53c6f3032
(cherry picked from commit 478c873fe4)
This commit is contained in:
Misha Wagner
2020-03-13 09:53:41 +00:00
parent 5191bb759f
commit 1f9fef655f
2 changed files with 7 additions and 3 deletions

View File

@@ -16,6 +16,8 @@
package com.android.internal.os;
import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.Nullable;
import android.util.ArrayMap;
import android.util.Slog;
@@ -99,7 +101,7 @@ public class KernelCpuThreadReaderDiff {
@VisibleForTesting
public KernelCpuThreadReaderDiff(KernelCpuThreadReader reader, int minimumTotalCpuUsageMillis) {
mReader = reader;
mReader = checkNotNull(reader);
mMinimumTotalCpuUsageMillis = minimumTotalCpuUsageMillis;
mPreviousCpuUsage = null;
}

View File

@@ -95,8 +95,10 @@ public class KernelCpuThreadReaderSettingsObserver extends ContentObserver {
KernelCpuThreadReader.create(
NUM_BUCKETS_DEFAULT, UidPredicate.fromString(COLLECTED_UIDS_DEFAULT));
mKernelCpuThreadReaderDiff =
new KernelCpuThreadReaderDiff(
mKernelCpuThreadReader, MINIMUM_TOTAL_CPU_USAGE_MILLIS_DEFAULT);
mKernelCpuThreadReader == null
? null
: new KernelCpuThreadReaderDiff(
mKernelCpuThreadReader, MINIMUM_TOTAL_CPU_USAGE_MILLIS_DEFAULT);
}
@Override