FileBackend: close cursor after retrieving file size

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/persistance/FileBackend.java | 14 
1 file changed, 10 insertions(+), 4 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/FileBackend.java 🔗

@@ -138,10 +138,16 @@ public class FileBackend {
 	}
 
 	private static long getFileSize(Context context, Uri uri) {
-		Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
-		if (cursor != null && cursor.moveToFirst()) {
-			return cursor.getLong(cursor.getColumnIndex(OpenableColumns.SIZE));
-		} else {
+		try {
+			final Cursor cursor = context.getContentResolver().query(uri, null, null, null, null);
+			if (cursor != null && cursor.moveToFirst()) {
+				long size = cursor.getLong(cursor.getColumnIndex(OpenableColumns.SIZE));
+				cursor.close();
+				return size;
+			} else {
+				return -1;
+			}
+		} catch (Exception e) {
 			return -1;
 		}
 	}