[libbluray-devel] [fix][java] Close resources in MountManager in case of an exception.
ace20022
git at videolan.org
Fri Nov 28 13:09:15 CET 2014
libbluray | branch: master | ace20022 <ace20022 at ymail.com> | Fri Nov 28 12:22:06 2014 +0100| [3d2236f883ab41406bc7ea0d1643a3b5ed83bf9d] | committer: ace20022
[fix][java] Close resources in MountManager in case of an exception.
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=3d2236f883ab41406bc7ea0d1643a3b5ed83bf9d
---
.../bdj/java/org/videolan/MountManager.java | 26 ++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/src/libbluray/bdj/java/org/videolan/MountManager.java b/src/libbluray/bdj/java/org/videolan/MountManager.java
index 75a2333..a3feff7 100644
--- a/src/libbluray/bdj/java/org/videolan/MountManager.java
+++ b/src/libbluray/bdj/java/org/videolan/MountManager.java
@@ -86,6 +86,8 @@ public class MountManager {
throw new MountException();
}
+ InputStream inStream = null;
+ OutputStream outStream = null;
try {
byte[] buffer = new byte[32 * 1024];
Enumeration entries = jar.entries();
@@ -103,8 +105,8 @@ public class MountManager {
logger.info(" mount: " + entry.getName());
- InputStream inStream = jar.getInputStream(entry);
- OutputStream outStream = new FileOutputStream(out);
+ inStream = jar.getInputStream(entry);
+ outStream = new FileOutputStream(out);
int length;
while ((length = inStream.read(buffer)) > 0) {
@@ -119,6 +121,26 @@ public class MountManager {
e.printStackTrace();
mountPoint.remove();
throw new MountException();
+ } finally {
+ if (inStream != null) {
+ try {
+ inStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (outStream != null) {
+ try {
+ outStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ try {
+ jar.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
if (mountPoint.classFiles() != classFiles) {
More information about the libbluray-devel
mailing list