aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2012-06-19 15:10:26 -0700
committerMichael Wright <michaelwr@google.com>2012-06-19 15:10:26 -0700
commit3e9c78b05ade34afee5ca373fd0ac512ac33aefb (patch)
tree6bfaba2934af296a29d7c9d6ddf2aad312f0ab9b /sdkmanager
parent148770ee4084816736e68b21ded90f4734b4eaa8 (diff)
downloadsdk-3e9c78b05ade34afee5ca373fd0ac512ac33aefb.zip
sdk-3e9c78b05ade34afee5ca373fd0ac512ac33aefb.tar.gz
sdk-3e9c78b05ade34afee5ca373fd0ac512ac33aefb.tar.bz2
Fixed resource leak in DeviceManager
Change-Id: I5eed8a5de878bd3c52452536baca0c56822263b8
Diffstat (limited to 'sdkmanager')
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/devices/DeviceManager.java47
1 files changed, 25 insertions, 22 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/devices/DeviceManager.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/devices/DeviceManager.java
index 7825215..e3985bd 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/devices/DeviceManager.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/devices/DeviceManager.java
@@ -16,10 +16,25 @@
package com.android.sdklib.devices;
+import com.android.prefs.AndroidLocation;
+import com.android.prefs.AndroidLocation.AndroidLocationException;
+import com.android.resources.Keyboard;
+import com.android.resources.KeyboardState;
+import com.android.resources.Navigation;
+import com.android.sdklib.ISdkLog;
+import com.android.sdklib.SdkConstants;
+import com.android.sdklib.devices.Storage.Unit;
+import com.android.sdklib.internal.avd.AvdManager;
+import com.android.sdklib.internal.avd.HardwareProperties;
+import com.android.sdklib.repository.PkgProps;
+
+import org.xml.sax.SAXException;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.io.Reader;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -31,20 +46,6 @@ import java.util.regex.Pattern;
import javax.xml.parsers.ParserConfigurationException;
-import org.xml.sax.SAXException;
-
-import com.android.prefs.AndroidLocation;
-import com.android.prefs.AndroidLocation.AndroidLocationException;
-import com.android.resources.Keyboard;
-import com.android.resources.KeyboardState;
-import com.android.resources.Navigation;
-import com.android.sdklib.ISdkLog;
-import com.android.sdklib.SdkConstants;
-import com.android.sdklib.devices.Storage.Unit;
-import com.android.sdklib.internal.avd.AvdManager;
-import com.android.sdklib.internal.avd.HardwareProperties;
-import com.android.sdklib.repository.PkgProps;
-
/**
* Manager class for interacting with {@link Device}s within the SDK
*/
@@ -217,16 +218,18 @@ public class DeviceManager {
File properties = new File(item, SdkConstants.FN_SOURCE_PROP);
try {
BufferedReader propertiesReader = new BufferedReader(new FileReader(properties));
- String line;
- while ((line = propertiesReader.readLine()) != null) {
- Matcher m = sPathPropertyPattern.matcher(line);
- if (m.matches()) {
- return true;
+ try {
+ String line;
+ while ((line = propertiesReader.readLine()) != null) {
+ Matcher m = sPathPropertyPattern.matcher(line);
+ if (m.matches()) {
+ return true;
+ }
}
+ } finally {
+ propertiesReader.close();
}
- } catch (IOException e) {
- return false;
- }
+ } catch (IOException ignore) { }
return false;
}
}