MTP: Add try/finally handling to finalize overrides

Change-Id: I23c481d6214ed5f045f903845632c07c11bb42a3
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/media/java/android/media/MtpClient.java b/media/java/android/media/MtpClient.java
index 1aebcb8..f7c0ce2 100644
--- a/media/java/android/media/MtpClient.java
+++ b/media/java/android/media/MtpClient.java
@@ -41,8 +41,12 @@
     }
 
     @Override
-    protected void finalize() {
-        native_finalize();
+    protected void finalize() throws Throwable {
+        try {
+            native_finalize();
+        } finally {
+            super.finalize();
+        }
     }
 
     public boolean start() {
diff --git a/media/java/android/media/MtpCursor.java b/media/java/android/media/MtpCursor.java
index 6ecfd0d..d4142d8 100644
--- a/media/java/android/media/MtpCursor.java
+++ b/media/java/android/media/MtpCursor.java
@@ -97,7 +97,11 @@
 
     @Override
     protected void finalize() {
-        native_finalize();
+        try {
+            native_finalize();
+        } finally {
+            super.finalize();
+        }
     }
 
     @Override
diff --git a/media/java/android/media/MtpDatabase.java b/media/java/android/media/MtpDatabase.java
index 7e0d390..1ea7e91 100644
--- a/media/java/android/media/MtpDatabase.java
+++ b/media/java/android/media/MtpDatabase.java
@@ -86,8 +86,13 @@
     }
 
     @Override
-    protected void finalize() {
-        native_finalize();
+    protected void finalize() throws Throwable {
+        try {
+            native_finalize();
+            mDevicePropDb.close();
+        } finally {
+            super.finalize();
+        }
     }
 
     private int beginSendObject(String path, int format, int parent,
diff --git a/media/java/android/media/MtpServer.java b/media/java/android/media/MtpServer.java
index b0945a5..dcf08e2 100644
--- a/media/java/android/media/MtpServer.java
+++ b/media/java/android/media/MtpServer.java
@@ -35,8 +35,12 @@
     }
 
     @Override
-    protected void finalize() {
-        native_finalize();
+    protected void finalize() throws Throwable {
+        try {
+            native_finalize();
+        } finally {
+            super.finalize();
+        }
     }
 
     public void start() {