From eba4e4ce7d2ce1fce6e1e70497087ea90699ebcf Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Thu, 10 Nov 2011 16:55:20 -0800 Subject: [PATCH 1/2] Fix Wimax-less build. A build with the wimax network type defined but wimax disabled causes an NPE in ConnectivityService's constructor. bug:5237167 Change-Id: I929eac217e1afa0e61346fdbc3e96a7d3ad09a54 --- services/java/com/android/server/ConnectivityService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 4af61129e2..fc87033757 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -514,7 +514,9 @@ public class ConnectivityService extends IConnectivityManager.Stub { continue; } mCurrentLinkProperties[netType] = null; - if (mNetConfigs[netType].isDefault()) mNetTrackers[netType].reconnect(); + if (mNetTrackers[netType] != null && mNetConfigs[netType].isDefault()) { + mNetTrackers[netType].reconnect(); + } } IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE); From 7217da5bf19944b054fcdab25391ec948dd484ff Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Fri, 11 Nov 2011 09:56:03 -0800 Subject: [PATCH 2/2] Fix NPE in ConnectivityService. If it's configured with a defined network but can't create a network state tracker for it, it would NPE and restart the framework whenever a default network disconnects. bug:5603268 Change-Id: I816c4f522d766e0353a713623f6635b03395b01e --- services/java/com/android/server/ConnectivityService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index fc87033757..6e4aca7788 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -1597,6 +1597,7 @@ private NetworkStateTracker makeWimaxStateTracker() { if (checkType == prevNetType) continue; if (mNetConfigs[checkType] == null) continue; if (!mNetConfigs[checkType].isDefault()) continue; + if (mNetTrackers[checkType] == null) continue; // Enabling the isAvailable() optimization caused mobile to not get // selected if it was in the middle of error handling. Specifically