From 2a8f7cb7367577d6a1e3b1406117a93c76e525a1 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 10 Sep 2014 16:35:36 -0700 Subject: [PATCH] Fix bug #17459965 Take photo for Profile twice leads to "A resource was acquired at attached stack trace but never released - close the stream properly in all cases Change-Id: I3a593be534ea444a2e2659458918cce221891456 --- .../android/settings/users/EditUserPhotoController.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/users/EditUserPhotoController.java b/src/com/android/settings/users/EditUserPhotoController.java index 538f332805..82e550ee0f 100644 --- a/src/com/android/settings/users/EditUserPhotoController.java +++ b/src/com/android/settings/users/EditUserPhotoController.java @@ -35,6 +35,7 @@ import android.os.AsyncTask; import android.provider.MediaStore; import android.provider.ContactsContract.DisplayPhoto; import android.support.v4.content.FileProvider; +import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; @@ -48,11 +49,14 @@ import com.android.settings.drawable.CircleFramedDrawable; import java.io.File; import java.io.FileNotFoundException; +import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; public class EditUserPhotoController { + private static final String TAG = "EditUserPhotoController"; + private static final int POPUP_LIST_ITEM_ID_CHOOSE_PHOTO = 1; private static final int POPUP_LIST_ITEM_ID_TAKE_PHOTO = 2; @@ -239,12 +243,22 @@ public class EditUserPhotoController { @Override protected Bitmap doInBackground(Void... params) { if (cropped) { + InputStream imageStream = null; try { - InputStream imageStream = mContext.getContentResolver() + imageStream = mContext.getContentResolver() .openInputStream(data); return BitmapFactory.decodeStream(imageStream); } catch (FileNotFoundException fe) { + Log.w(TAG, "Cannot find image file", fe); return null; + } finally { + if (imageStream != null) { + try { + imageStream.close(); + } catch (IOException ioe) { + Log.w(TAG, "Cannot close image stream", ioe); + } + } } } else { // Scale and crop to a square aspect ratio -- 2.11.0