OSDN Git Service

In isMobileOk don't execute finally if mobile data is not supported.
authorWink Saville <wink@google.com>
Tue, 13 Aug 2013 19:41:06 +0000 (12:41 -0700)
committerThe Android Automerger <android-build@google.com>
Thu, 29 Aug 2013 20:02:23 +0000 (13:02 -0700)
Move the early return outside the try {} finally so we don't call
setEnableFailFastMobileData(DctContants.DISABLED). Otherwise
referencing counting is wrong and an exception is thrown in DcTrackerBase.

Bug: 10304904
Change-Id: I5ba5121e473bada9f3daa8d6f3d3577cec8212fc

services/java/com/android/server/ConnectivityService.java

index 00935f3..fa016f4 100644 (file)
@@ -3732,13 +3732,13 @@ public class ConnectivityService extends IConnectivityManager.Stub {
             Random rand = new Random();
             mParams = params;
 
-            try {
-                if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) {
-                    log("isMobileOk: not mobile capable");
-                    result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
-                    return result;
-                }
+            if (mCs.isNetworkSupported(ConnectivityManager.TYPE_MOBILE) == false) {
+                log("isMobileOk: not mobile capable");
+                result = ConnectivityManager.CMP_RESULT_CODE_NO_CONNECTION;
+                return result;
+            }
 
+            try {
                 // Enable fail fast as we'll do retries here and use a
                 // hipri connection so the default connection stays active.
                 log("isMobileOk: start hipri url=" + params.mUrl);