aboutsummaryrefslogtreecommitdiff
path: root/src/XZDecDemo.java
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2011-05-21 21:39:18 +0300
committerLasse Collin <lasse.collin@tukaani.org>2011-05-21 21:39:18 +0300
commited6c5bce7e7c3d8654120884ef9dee5039260521 (patch)
tree067e4b0bc1903e020c61ecc4f866c033c43cb107 /src/XZDecDemo.java
parentb563eacd944c39d47cedd00d3d1a3a00fa5b64aa (diff)
downloadxz-java-ed6c5bce7e7c3d8654120884ef9dee5039260521.tar.gz
Fix a file descriptor leak in XZDecDemo.
Diffstat (limited to 'src/XZDecDemo.java')
-rw-r--r--src/XZDecDemo.java25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/XZDecDemo.java b/src/XZDecDemo.java
index f1ba501..6876eea 100644
--- a/src/XZDecDemo.java
+++ b/src/XZDecDemo.java
@@ -32,17 +32,24 @@ class XZDecDemo {
// Read from files given on the command line.
for (int i = 0; i < args.length; ++i) {
name = args[i];
-
- // Since XZInputStream does some buffering internally
- // anyway, BufferedInputStream doesn't seem to be
- // needed here to improve performance.
InputStream in = new FileInputStream(name);
- // in = new BufferedInputStream(in);
- in = new XZInputStream(in);
- int size;
- while ((size = in.read(buf)) != -1)
- System.out.write(buf, 0, size);
+ try {
+ // Since XZInputStream does some buffering internally
+ // anyway, BufferedInputStream doesn't seem to be
+ // needed here to improve performance.
+ // in = new BufferedInputStream(in);
+ in = new XZInputStream(in);
+
+ int size;
+ while ((size = in.read(buf)) != -1)
+ System.out.write(buf, 0, size);
+
+ } finally {
+ // Close FileInputStream (directly or indirectly
+ // via XZInputStream, it doesn't matter).
+ in.close();
+ }
}
}
} catch (FileNotFoundException e) {