From 33fc2dd635f8fc0387e137663d8819e1637568dc Mon Sep 17 00:00:00 2001 From: Soonil Nagarkar Date: Tue, 23 Mar 2021 08:34:50 -0700 Subject: [PATCH] Fixup lint errors in ServiceWatcher Allow subclass equality and use locks appropriately to avoid lint warnings. Bug: 181665909 Test: presubmits Change-Id: I62fe67451fb59f634eb0448edef63e4a28bc476a --- .../server/servicewatcher/ServiceWatcher.java | 2 +- .../servicewatcher/ServiceWatcherImpl.java | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/servicewatcher/ServiceWatcher.java b/services/core/java/com/android/server/servicewatcher/ServiceWatcher.java index 23b5d98de59fa..030bbd2bc652d 100644 --- a/services/core/java/com/android/server/servicewatcher/ServiceWatcher.java +++ b/services/core/java/com/android/server/servicewatcher/ServiceWatcher.java @@ -176,7 +176,7 @@ public interface ServiceWatcher { if (this == o) { return true; } - if (o == null || getClass() != o.getClass()) { + if (!(o instanceof BoundServiceInfo)) { return false; } diff --git a/services/core/java/com/android/server/servicewatcher/ServiceWatcherImpl.java b/services/core/java/com/android/server/servicewatcher/ServiceWatcherImpl.java index 7757a7a096db6..e718ba3b17cf1 100644 --- a/services/core/java/com/android/server/servicewatcher/ServiceWatcherImpl.java +++ b/services/core/java/com/android/server/servicewatcher/ServiceWatcherImpl.java @@ -147,13 +147,23 @@ class ServiceWatcherImpl implements @Override public String toString() { - return mServiceConnection.getBoundServiceInfo().toString(); + MyServiceConnection serviceConnection; + synchronized (this) { + serviceConnection = mServiceConnection; + } + + return serviceConnection.getBoundServiceInfo().toString(); } @Override public void dump(PrintWriter pw) { - pw.println("target service=" + mServiceConnection.getBoundServiceInfo()); - pw.println("connected=" + mServiceConnection.isConnected()); + MyServiceConnection serviceConnection; + synchronized (this) { + serviceConnection = mServiceConnection; + } + + pw.println("target service=" + serviceConnection.getBoundServiceInfo()); + pw.println("connected=" + serviceConnection.isConnected()); } // runs on the handler thread, and expects most of it's methods to be called from that thread