summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Neil Fuller <nfuller@google.com> 2021-04-07 20:29:50 +0100
committer Neil Fuller <nfuller@google.com> 2021-04-07 21:02:26 +0100
commit9d02a125fbc7825a7e47d97fe33e5513d5252427 (patch)
tree68f263b8e3b650c3ed819b0e8e6bc324bbdd07f3
parentadb4b12d77318526306963f14de7c5b6fa0a4683 (diff)
Fix state dumping when service stopped
Avoid a NullPointerException. Bug: 178169250 Test: Command line testing Change-Id: If01e31fc72c3284dacef8735fd997a7783faf6e0
-rw-r--r--services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerService.java7
-rw-r--r--services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java5
2 files changed, 10 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerService.java b/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerService.java
index ca4a6408cfbb..6719695bc0e7 100644
--- a/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerService.java
+++ b/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerService.java
@@ -437,8 +437,11 @@ public class LocationTimeZoneManagerService extends Binder {
}, BLOCKING_OP_WAIT_DURATION_MILLIS);
}
- /** Returns a snapshot of the current controller state for tests. */
- @NonNull
+ /**
+ * Returns a snapshot of the current controller state for tests. Returns {@code null} if the
+ * service is stopped.
+ */
+ @Nullable
LocationTimeZoneManagerServiceState getStateForTests() {
enforceManageTimeZoneDetectorPermission();
diff --git a/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java b/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java
index bdf4a70a6a2b..40638080004c 100644
--- a/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java
+++ b/services/core/java/com/android/server/timezonedetector/location/LocationTimeZoneManagerShellCommand.java
@@ -217,6 +217,11 @@ class LocationTimeZoneManagerShellCommand extends ShellCommand {
return 1;
}
+ if (state == null) {
+ // Controller is stopped.
+ return 0;
+ }
+
DualDumpOutputStream outputStream;
boolean useProto = Objects.equals(DUMP_STATE_OPTION_PROTO, getNextOption());
if (useProto) {