Index: android_webview/java/src/org/chromium/android_webview/AwAssets.java |
diff --git a/android_webview/java/src/org/chromium/android_webview/AwAssets.java b/android_webview/java/src/org/chromium/android_webview/AwAssets.java |
index 97e292ff7a37ff0be2f9088c6ff60b1e9ebaf755..55c94b6fec5d85cb18d08dbe930264a0899cd9c6 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwAssets.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwAssets.java |
@@ -24,15 +24,24 @@ public class AwAssets { |
@CalledByNative |
public static long[] openAsset(Context context, String fileName) { |
+ AssetFileDescriptor afd = null; |
try { |
AssetManager manager = context.getAssets(); |
- AssetFileDescriptor afd = manager.openFd(fileName); |
+ afd = manager.openFd(fileName); |
return new long[] { afd.getParcelFileDescriptor().detachFd(), |
afd.getStartOffset(), |
afd.getLength() }; |
} catch (IOException e) { |
- Log.e(LOGTAG, "Error while loading asset " + fileName + ": " + e.getMessage()); |
+ Log.e(LOGTAG, "Error while loading asset " + fileName + ": " + e); |
return new long[] {-1, -1, -1}; |
+ } finally { |
+ try { |
+ if (afd != null) { |
+ afd.close(); |
+ } |
+ } catch (IOException e2) { |
+ Log.e(LOGTAG, "Unable to close AssetFileDescriptor", e2); |
+ } |
} |
} |
} |