From 929b4855b8208d36272769e8eeaa6cd2823b94c0 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Wed, 9 Jun 2010 14:27:43 -0700 Subject: [PATCH] Fix a problem with leaking UDP sockets. When dealing with any kind of limited operating system resource, we should ensure that we properly close everything that we open, rather than relying on the system garbage collector. Change-Id: Ic71f710eb85ac71a91b7a1215647c75010d37643 --- services/java/com/android/server/WifiWatchdogService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/java/com/android/server/WifiWatchdogService.java b/services/java/com/android/server/WifiWatchdogService.java index 87f8a6e69c3f9..445dd0366d574 100644 --- a/services/java/com/android/server/WifiWatchdogService.java +++ b/services/java/com/android/server/WifiWatchdogService.java @@ -1217,8 +1217,9 @@ public class WifiWatchdogService { private static Random sRandom = new Random(); static boolean isDnsReachable(int dns, int timeout) { + DatagramSocket socket = null; try { - DatagramSocket socket = new DatagramSocket(); + socket = new DatagramSocket(); // Set some socket properties socket.setSoTimeout(timeout); @@ -1271,6 +1272,10 @@ public class WifiWatchdogService { Slog.d(TAG, "DnsPinger.isReachable got an unknown exception", e); } return false; + } finally { + if (socket != null) { + socket.close(); + } } }