Use IBinder as key for ConnectivityDiagnostics storage in CS.
This change updates ConnectivityService to use IBinder instances as keys when storing ConnectivityDiagnosticsCallbacks. When storing ConnectivityDiagnosticsCallbacks in ConnectivityService, the IConnectivityDiagnsoticsCallback is used as the key for ConnectivityService.mConnectivityDiagnosticsCallbacks. However, IConnectivityDiagnosticsCallback instances are received as different objects. This causes them to produce different hashCode() values, so attempts to remove an IConnectivityDiagnosticsCallback fail. Bug: 150867635 Test: atest FrameworksNetTests Change-Id: Ib99e68d5ae47fa27e12428f9a60a2c1204ac59a2 Merged-In: Ib99e68d5ae47fa27e12428f9a60a2c1204ac59a2 (cherry picked from commit c7c6a4ac12beb7c216076958612869426da06da0)
This commit is contained in:
@@ -6750,16 +6750,12 @@ public class ConnectivityServiceTest {
|
||||
|
||||
verify(mIBinder).linkToDeath(any(ConnectivityDiagnosticsCallbackInfo.class), anyInt());
|
||||
verify(mConnectivityDiagnosticsCallback).asBinder();
|
||||
assertTrue(
|
||||
mService.mConnectivityDiagnosticsCallbacks.containsKey(
|
||||
mConnectivityDiagnosticsCallback));
|
||||
assertTrue(mService.mConnectivityDiagnosticsCallbacks.containsKey(mIBinder));
|
||||
|
||||
mService.unregisterConnectivityDiagnosticsCallback(mConnectivityDiagnosticsCallback);
|
||||
verify(mIBinder, timeout(TIMEOUT_MS))
|
||||
.unlinkToDeath(any(ConnectivityDiagnosticsCallbackInfo.class), anyInt());
|
||||
assertFalse(
|
||||
mService.mConnectivityDiagnosticsCallbacks.containsKey(
|
||||
mConnectivityDiagnosticsCallback));
|
||||
assertFalse(mService.mConnectivityDiagnosticsCallbacks.containsKey(mIBinder));
|
||||
verify(mConnectivityDiagnosticsCallback, atLeastOnce()).asBinder();
|
||||
}
|
||||
|
||||
@@ -6777,9 +6773,7 @@ public class ConnectivityServiceTest {
|
||||
|
||||
verify(mIBinder).linkToDeath(any(ConnectivityDiagnosticsCallbackInfo.class), anyInt());
|
||||
verify(mConnectivityDiagnosticsCallback).asBinder();
|
||||
assertTrue(
|
||||
mService.mConnectivityDiagnosticsCallbacks.containsKey(
|
||||
mConnectivityDiagnosticsCallback));
|
||||
assertTrue(mService.mConnectivityDiagnosticsCallbacks.containsKey(mIBinder));
|
||||
|
||||
// Register the same callback again
|
||||
mService.registerConnectivityDiagnosticsCallback(
|
||||
@@ -6788,9 +6782,7 @@ public class ConnectivityServiceTest {
|
||||
// Block until all other events are done processing.
|
||||
HandlerUtilsKt.waitForIdle(mCsHandlerThread, TIMEOUT_MS);
|
||||
|
||||
assertTrue(
|
||||
mService.mConnectivityDiagnosticsCallbacks.containsKey(
|
||||
mConnectivityDiagnosticsCallback));
|
||||
assertTrue(mService.mConnectivityDiagnosticsCallbacks.containsKey(mIBinder));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user