JAVA: Release InputStreams after using them.
authorjia.shao.peng <jia.shao.peng@ee073f10-1060-11df-b6a4-87a95322a99c>
Wed, 19 Oct 2011 18:38:16 +0000 (18:38 +0000)
committerjia.shao.peng <jia.shao.peng@ee073f10-1060-11df-b6a4-87a95322a99c>
Wed, 19 Oct 2011 18:38:16 +0000 (18:38 +0000)
Review URL: http://codereview.appspot.com/5263046

git-svn-id: http://libphonenumber.googlecode.com/svn/trunk@373 ee073f10-1060-11df-b6a4-87a95322a99c

java/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java
java/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java

index 3097d4f..bfcb98e 100644 (file)
@@ -611,7 +611,7 @@ public class PhoneNumberUtil {
   private void loadMetadataForRegionFromFile(String filePrefix, String regionCode) {
     InputStream source =
         PhoneNumberUtil.class.getResourceAsStream(filePrefix + "_" + regionCode);
-    ObjectInputStream in;
+    ObjectInputStream in = null;
     try {
       in = new ObjectInputStream(source);
       PhoneMetadataCollection metadataCollection = new PhoneMetadataCollection();
@@ -621,6 +621,18 @@ public class PhoneNumberUtil {
       }
     } catch (IOException e) {
       LOGGER.log(Level.WARNING, e.toString());
+    } finally {
+      close(in);
+    }
+  }
+
+  private static void close(InputStream in) {
+    if (in != null) {
+      try {
+        in.close();
+      } catch (IOException e) {
+        LOGGER.log(Level.WARNING, e.toString());
+      }
     }
   }
 
index 5278b85..1d074b7 100644 (file)
@@ -59,12 +59,14 @@ public class PhoneNumberOfflineGeocoder {
   private void loadMappingFileProvider() {
     InputStream source =
         PhoneNumberOfflineGeocoder.class.getResourceAsStream(phonePrefixDataDirectory + "config");
-    ObjectInputStream in;
+    ObjectInputStream in = null;
     try {
       in = new ObjectInputStream(source);
       mappingFileProvider.readExternal(in);
     } catch (IOException e) {
       LOGGER.log(Level.WARNING, e.toString());
+    } finally {
+      close(in);
     }
   }
 
@@ -83,7 +85,7 @@ public class PhoneNumberOfflineGeocoder {
   private void loadAreaCodeMapFromFile(String fileName) {
     InputStream source =
         PhoneNumberOfflineGeocoder.class.getResourceAsStream(phonePrefixDataDirectory + fileName);
-    ObjectInputStream in;
+    ObjectInputStream in = null;
     try {
       in = new ObjectInputStream(source);
       AreaCodeMap map = new AreaCodeMap();
@@ -91,6 +93,18 @@ public class PhoneNumberOfflineGeocoder {
       availablePhonePrefixMaps.put(fileName, map);
     } catch (IOException e) {
       LOGGER.log(Level.WARNING, e.toString());
+    } finally {
+      close(in);
+    }
+  }
+
+  private static void close(InputStream in) {
+    if (in != null) {
+      try {
+        in.close();
+      } catch (IOException e) {
+        LOGGER.log(Level.WARNING, e.toString());
+      }
     }
   }