diff options
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkPolicyManagerService.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/net/NetworkStatsService.java | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index a85960a186b7..6c0a7a70d563 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -414,6 +414,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final Object mNetworkPoliciesSecondLock = new Object(); @GuardedBy("allLocks") volatile boolean mSystemReady; + volatile boolean mSystemReallyReady; @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictBackground; @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictPower; @@ -866,6 +867,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { Thread.currentThread().interrupt(); throw new IllegalStateException("Service " + TAG + " init interrupted", e); } + mSystemReallyReady = true; } final private IUidObserver mUidObserver = new IUidObserver.Stub() { @@ -1402,6 +1404,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // on background handler thread, and verified CONNECTIVITY_INTERNAL // permission above. + if (!mSystemReallyReady) return; synchronized (mUidRulesFirstLock) { synchronized (mNetworkPoliciesSecondLock) { ensureActiveMobilePolicyAL(); diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java index e3ff72b9a9d7..e7f92dca6097 100644 --- a/services/core/java/com/android/server/net/NetworkStatsService.java +++ b/services/core/java/com/android/server/net/NetworkStatsService.java @@ -282,7 +282,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub { private Handler mHandler; private Handler.Callback mHandlerCallback; - private boolean mSystemReady; + private volatile boolean mSystemReady; private long mPersistThreshold = 2 * MB_IN_BYTES; private long mGlobalAlertBytes; |