diff options
| author | 2013-08-10 11:22:31 -0700 | |
|---|---|---|
| committer | 2013-08-10 11:22:31 -0700 | |
| commit | a48ad8bd858d6ffe77838a282dbf71e01967957c (patch) | |
| tree | 4208c106ef374a1d4260c8c225d9b56da810cd8d | |
| parent | 7a7c35e2abf0b4984c711614c8b9347b4c06aea3 (diff) | |
PROXY_SERVICE may be missing and its reference null.
Protect ourselves from when PROXY_SERVICE is missing
and mProxyService is null.
Bug: 10267814
Change-Id: Ia329376218e246cdde3d70b578c18466d48a6383
| -rw-r--r-- | core/java/android/net/PacProxySelector.java | 10 | ||||
| -rw-r--r-- | services/java/com/android/server/connectivity/PacManager.java | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/core/java/android/net/PacProxySelector.java b/core/java/android/net/PacProxySelector.java index be3a31dce10b..d3ce2e509e14 100644 --- a/core/java/android/net/PacProxySelector.java +++ b/core/java/android/net/PacProxySelector.java @@ -3,6 +3,7 @@ package android.net; import android.os.RemoteException; import android.os.ServiceManager; +import android.util.Log; import com.android.net.IProxyService; import com.google.android.collect.Lists; @@ -21,16 +22,25 @@ import java.util.List; * @hide */ public class PacProxySelector extends ProxySelector { + private static final String TAG = "PacProxySelector"; public static final String PROXY_SERVICE = "com.android.net.IProxyService"; private IProxyService mProxyService; public PacProxySelector() { mProxyService = IProxyService.Stub.asInterface( ServiceManager.getService(PROXY_SERVICE)); + if (mProxyService == null) { + // Added because of b10267814 where mako is restarting. + Log.e(TAG, "PackManager: no proxy service"); + } } @Override public List<Proxy> select(URI uri) { + if (mProxyService == null) { + Log.e(TAG, "select: no proxy service return NO_PROXY"); + return Lists.newArrayList(java.net.Proxy.NO_PROXY); + } String response = null; String urlString; try { diff --git a/services/java/com/android/server/connectivity/PacManager.java b/services/java/com/android/server/connectivity/PacManager.java index 189c6261c39a..defe9f075147 100644 --- a/services/java/com/android/server/connectivity/PacManager.java +++ b/services/java/com/android/server/connectivity/PacManager.java @@ -83,6 +83,12 @@ public class PacManager implements Runnable { mContext = context; mProxyService = IProxyService.Stub.asInterface( ServiceManager.getService(PROXY_SERVICE)); + if (mProxyService == null) { + // Added because of b10267814 where mako is restarting. + Log.e(TAG, "PacManager: no proxy service"); + } else { + Log.d(TAG, "PacManager: mProxyService available"); + } mPacRefreshIntent = PendingIntent.getBroadcast( context, 0, new Intent(ACTION_PAC_REFRESH), 0); @@ -98,6 +104,10 @@ public class PacManager implements Runnable { } public void setCurrentProxyScriptUrl(ProxyProperties proxy) { + if (mProxyService == null) { + Log.e(TAG, "setCurrentProxyScriptUrl: no proxy service"); + return; + } if (!TextUtils.isEmpty(proxy.getPacFileUrl())) { try { mProxyService.startPacSystem(); @@ -212,6 +222,10 @@ public class PacManager implements Runnable { } private boolean setCurrentProxyScript(String script) { + if (mProxyService == null) { + Log.e(TAG, "setCurrentProxyScript: no proxy service"); + return false; + } try { if (mProxyService.setPacFile(script) != NO_ERROR) { Log.e(TAG, "Unable to parse proxy script."); |