summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wink Saville <wink@google.com> 2013-08-10 11:22:31 -0700
committer Wink Saville <wink@google.com> 2013-08-10 11:22:31 -0700
commita48ad8bd858d6ffe77838a282dbf71e01967957c (patch)
tree4208c106ef374a1d4260c8c225d9b56da810cd8d
parent7a7c35e2abf0b4984c711614c8b9347b4c06aea3 (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.java10
-rw-r--r--services/java/com/android/server/connectivity/PacManager.java14
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.");