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 478c873fe44d78c818dcf7bb58f4a0a69d19a1fe)
(cherry picked from commit 1f9fef655ff2d83e719ea4c4a73a2e831e1a5756)
diff --git a/core/java/com/android/internal/os/KernelCpuThreadReaderDiff.java b/core/java/com/android/internal/os/KernelCpuThreadReaderDiff.java
index ffdc33c..c11b939 100644
--- a/core/java/com/android/internal/os/KernelCpuThreadReaderDiff.java
+++ b/core/java/com/android/internal/os/KernelCpuThreadReaderDiff.java
@@ -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 @@
 
     @VisibleForTesting
     public KernelCpuThreadReaderDiff(KernelCpuThreadReader reader, int minimumTotalCpuUsageMillis) {
-        mReader = reader;
+        mReader = checkNotNull(reader);
         mMinimumTotalCpuUsageMillis = minimumTotalCpuUsageMillis;
         mPreviousCpuUsage = null;
     }
diff --git a/core/java/com/android/internal/os/KernelCpuThreadReaderSettingsObserver.java b/core/java/com/android/internal/os/KernelCpuThreadReaderSettingsObserver.java
index fdcc8a8..c908b8c 100644
--- a/core/java/com/android/internal/os/KernelCpuThreadReaderSettingsObserver.java
+++ b/core/java/com/android/internal/os/KernelCpuThreadReaderSettingsObserver.java
@@ -95,8 +95,10 @@
                 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