aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs/sdklib/src
diff options
context:
space:
mode:
authorMichael Wright <michaelwr@google.com>2012-06-19 16:42:04 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-06-19 16:42:05 -0700
commita2cf071d2cc8e65f2c66108584a975b68bc4ac84 (patch)
tree37696836580429a3e46aa9159dd9f3f4ca058c67 /sdkmanager/libs/sdklib/src
parente1e644ecbb06954c8fe678a948091dd293ae09bf (diff)
parent3e9c78b05ade34afee5ca373fd0ac512ac33aefb (diff)
downloadsdk-a2cf071d2cc8e65f2c66108584a975b68bc4ac84.zip
sdk-a2cf071d2cc8e65f2c66108584a975b68bc4ac84.tar.gz
sdk-a2cf071d2cc8e65f2c66108584a975b68bc4ac84.tar.bz2
Merge "Fixed resource leak in DeviceManager"
Diffstat (limited to 'sdkmanager/libs/sdklib/src')
-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 3b2d1db..acf9af3 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;
}
}