diff options
| author | 2010-12-13 15:05:20 -0800 | |
|---|---|---|
| committer | 2010-12-13 15:05:20 -0800 | |
| commit | 30ad1e576a445b8ffec12ef148f5d7253ebb6ef4 (patch) | |
| tree | e78bb2970f1012128d687a8e820bb1f8aa7714ba | |
| parent | 78e9f4cbaece783b7b87ce3fb0a157dae766012a (diff) | |
| parent | 9dbef975f0f4370dfe48a0fb040e3d8d1eb91d87 (diff) | |
am 9dbef975: Merge "Avoid leaking sockets." into gingerbread
* commit '9dbef975f0f4370dfe48a0fb040e3d8d1eb91d87':
Avoid leaking sockets.
| -rw-r--r-- | core/java/android/net/SntpClient.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/core/java/android/net/SntpClient.java b/core/java/android/net/SntpClient.java index f607ee916a4c..3e21e2dbdaa9 100644 --- a/core/java/android/net/SntpClient.java +++ b/core/java/android/net/SntpClient.java @@ -72,8 +72,9 @@ public class SntpClient * @return true if the transaction was successful. */ public boolean requestTime(String host, int timeout) { + DatagramSocket socket = null; try { - DatagramSocket socket = new DatagramSocket(); + socket = new DatagramSocket(); socket.setSoTimeout(timeout); InetAddress address = InetAddress.getByName(host); byte[] buffer = new byte[NTP_PACKET_SIZE]; @@ -96,7 +97,6 @@ public class SntpClient socket.receive(response); long responseTicks = SystemClock.elapsedRealtime(); long responseTime = requestTime + (responseTicks - requestTicks); - socket.close(); // extract the results long originateTime = readTimeStamp(buffer, ORIGINATE_TIME_OFFSET); @@ -123,6 +123,10 @@ public class SntpClient } catch (Exception e) { if (Config.LOGD) Log.d(TAG, "request time failed: " + e); return false; + } finally { + if (socket != null) { + socket.close(); + } } return true; |