From a3b8122623d22103e365bd61c034e3afeb07f6bc Mon Sep 17 00:00:00 2001 From: Benedict Wong Date: Mon, 19 Apr 2021 15:21:46 -0700 Subject: [PATCH] Fix NPE in dump and add additional dump data This change fixes a NPE when the VcnGatwayConnection attempts to print for a null underlying network. Additionally, it also prints the existing configs in order to better identify whether a VCN config is failing to be privisoned, or failing to start. Test: manual testing Change-Id: I44d65633364a5f16d75519cead6729969eb1c06f --- .../com/android/server/VcnManagementService.java | 8 ++++++++ .../com/android/server/vcn/VcnGatewayConnection.java | 12 ++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/VcnManagementService.java b/services/core/java/com/android/server/VcnManagementService.java index 45717f200c454..6eb6a0ed7b1c8 100644 --- a/services/core/java/com/android/server/VcnManagementService.java +++ b/services/core/java/com/android/server/VcnManagementService.java @@ -955,6 +955,14 @@ public class VcnManagementService extends IVcnManagementService.Stub { pw.decreaseIndent(); pw.println(); + pw.println("mConfigs:"); + pw.increaseIndent(); + for (Entry entry : mConfigs.entrySet()) { + pw.println(entry.getKey() + ": " + entry.getValue().getProvisioningPackageName()); + } + pw.decreaseIndent(); + pw.println(); + pw.println("mVcns:"); pw.increaseIndent(); for (Vcn vcn : mVcns.values()) { diff --git a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java b/services/core/java/com/android/server/vcn/VcnGatewayConnection.java index 38f5dd6c3a8d2..77bfc5f461683 100644 --- a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java +++ b/services/core/java/com/android/server/vcn/VcnGatewayConnection.java @@ -2046,7 +2046,11 @@ public class VcnGatewayConnection extends StateMachine { pw.println("VcnGatewayConnection (" + mConnectionConfig.getGatewayConnectionName() + "):"); pw.increaseIndent(); - pw.println("Current state: " + getCurrentState().getClass().getSimpleName()); + pw.println( + "Current state: " + + (getCurrentState() == null + ? null + : getCurrentState().getClass().getSimpleName())); pw.println("mIsQuitting: " + mIsQuitting); pw.println("mIsInSafeMode: " + mIsInSafeMode); pw.println("mCurrentToken: " + mCurrentToken); @@ -2057,7 +2061,11 @@ public class VcnGatewayConnection extends StateMachine { pw.println("mUnderlying:"); pw.increaseIndent(); - mUnderlying.dump(pw); + if (mUnderlying != null) { + mUnderlying.dump(pw); + } else { + pw.println("null"); + } pw.decreaseIndent(); pw.println();