From e3a7ae61183dead507eff29de2a9ca430c95401b Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 2 Oct 2014 15:39:38 -0400 Subject: [PATCH] Synchronize on all sendProxyBroadcast calls To avoid race conditions. Also make mDefaultProxy volatile for safety. Bug: 17697364 Change-Id: I8f0abb1a6e1c816f3addc11a69ff794ad767f2cf --- .../java/com/android/server/ConnectivityService.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index a9cff22c59..3dbbf23339 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -403,7 +403,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { private ArrayList mInetLog; // track the current default http proxy - tell the world if we get a new one (real change) - private ProxyInfo mDefaultProxy = null; + private volatile ProxyInfo mDefaultProxy = null; private Object mProxyLock = new Object(); private boolean mDefaultProxyDisabled = false; @@ -2537,12 +2537,12 @@ public class ConnectivityService extends IConnectivityManager.Stub { } finally { Binder.restoreCallingIdentity(token); } - } - if (mGlobalProxy == null) { - proxyProperties = mDefaultProxy; + if (mGlobalProxy == null) { + proxyProperties = mDefaultProxy; + } + sendProxyBroadcast(proxyProperties); } - sendProxyBroadcast(proxyProperties); } private void loadGlobalProxy() {