diff --git a/service-t/src/com/android/server/net/NetworkStatsObservers.java b/service-t/src/com/android/server/net/NetworkStatsObservers.java index df4e7f5e65..1cd670a532 100644 --- a/service-t/src/com/android/server/net/NetworkStatsObservers.java +++ b/service-t/src/com/android/server/net/NetworkStatsObservers.java @@ -198,7 +198,7 @@ class NetworkStatsObservers { if (LOG) Log.d(TAG, "Unregistering " + requestInfo); mDataUsageRequests.remove(request.requestId); - mDataUsageRequestsPerUid.decrementCountOrThrow(callingUid); + mDataUsageRequestsPerUid.decrementCountOrThrow(requestInfo.mCallingUid); requestInfo.unlinkDeathRecipient(); requestInfo.callCallback(NetworkStatsManager.CALLBACK_RELEASED); } diff --git a/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java b/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java index e8c9637fa6..5747e10a16 100644 --- a/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java +++ b/tests/unit/java/com/android/server/net/NetworkStatsObserversTest.java @@ -274,8 +274,12 @@ public class NetworkStatsObserversTest { mStatsObservers.unregister(request, UID_BLUE); waitForObserverToIdle(); - Mockito.verifyZeroInteractions(mUsageCallbackBinder); + + // Verify that system uid can unregister for other uids. + mStatsObservers.unregister(request, Process.SYSTEM_UID); + waitForObserverToIdle(); + mUsageCallback.expectOnCallbackReleased(request); } private NetworkIdentitySet makeTestIdentSet() {