diff options
| author | 2016-08-19 17:54:35 +0000 | |
|---|---|---|
| committer | 2016-08-19 17:54:35 +0000 | |
| commit | 879bc353c08d18ec357d194b2fb91f233b72d6a5 (patch) | |
| tree | 513998fe820f909b86a2f4436c4095e9cb20445d | |
| parent | ff6c1bb5ce5d55726eefa4d55121dca3e1a2769e (diff) | |
| parent | 907ce63ed1f8dd9e51354c35cc1172599a4d748d (diff) | |
Merge "[NAN] Update finalize to check and warn user if resources not freed" into mm-wireless-dev
am: 907ce63ed1
Change-Id: Id45d1727dcfdf234e6345f546144c26408ae5fe6
| -rw-r--r-- | wifi/java/android/net/wifi/nan/WifiNanManager.java | 14 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/nan/WifiNanSession.java | 21 |
2 files changed, 27 insertions, 8 deletions
diff --git a/wifi/java/android/net/wifi/nan/WifiNanManager.java b/wifi/java/android/net/wifi/nan/WifiNanManager.java index 2c87f1122a05..1e929d2d5ff2 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanManager.java +++ b/wifi/java/android/net/wifi/nan/WifiNanManager.java @@ -38,6 +38,8 @@ import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; +import dalvik.system.CloseGuard; + import libcore.util.HexEncoding; import org.json.JSONException; @@ -221,6 +223,7 @@ public class WifiNanManager { public static final int WIFI_NAN_DATA_PATH_ROLE_RESPONDER = 1; private final IWifiNanManager mService; + private final CloseGuard mCloseGuard = CloseGuard.get(); private final Object mLock = new Object(); // lock access to the following vars @@ -330,6 +333,8 @@ public class WifiNanManager { throw e.rethrowFromSystemServer(); } } + + mCloseGuard.open("disconnect"); } /** @@ -359,6 +364,7 @@ public class WifiNanManager { mClientId = INVALID_CLIENT_ID; } + mCloseGuard.close(); try { mService.disconnect(clientId, binder); } catch (RemoteException e) { @@ -368,8 +374,12 @@ public class WifiNanManager { @Override protected void finalize() throws Throwable { - disconnect(); - super.finalize(); + try { + mCloseGuard.warnIfOpen(); + disconnect(); + } finally { + super.finalize(); + } } /** diff --git a/wifi/java/android/net/wifi/nan/WifiNanSession.java b/wifi/java/android/net/wifi/nan/WifiNanSession.java index c10cd521ff89..f0a83687f088 100644 --- a/wifi/java/android/net/wifi/nan/WifiNanSession.java +++ b/wifi/java/android/net/wifi/nan/WifiNanSession.java @@ -21,6 +21,8 @@ import android.annotation.SystemApi; import android.net.wifi.RttManager; import android.util.Log; +import dalvik.system.CloseGuard; + import java.lang.ref.WeakReference; /** @@ -52,6 +54,8 @@ public class WifiNanSession { */ protected boolean mTerminated = false; + private final CloseGuard mCloseGuard = CloseGuard.get(); + /** * {@hide} */ @@ -60,6 +64,8 @@ public class WifiNanSession { mMgr = new WeakReference<>(manager); mSessionId = sessionId; + + mCloseGuard.open("terminate"); } /** @@ -77,6 +83,7 @@ public class WifiNanSession { mgr.terminateSession(mSessionId); mTerminated = true; mMgr.clear(); + mCloseGuard.close(); } /** @@ -92,17 +99,19 @@ public class WifiNanSession { } mTerminated = true; mMgr.clear(); + mCloseGuard.close(); } @Override protected void finalize() throws Throwable { - if (!mTerminated) { - Log.w(TAG, "WifiNanSession mSessionId=" + mSessionId - + " was not explicitly terminated. The session may use resources until " - + "terminated so step should be done explicitly"); - terminate(); + try { + if (!mTerminated) { + mCloseGuard.warnIfOpen(); + terminate(); + } + } finally { + super.finalize(); } - super.finalize(); } /** |