]> source.dussan.org Git - jgit.git/commitdiff
Ensure RawText closes the FileInputStream when read is complete 66/266/2
authorShawn O. Pearce <spearce@spearce.org>
Wed, 3 Feb 2010 16:23:34 +0000 (08:23 -0800)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 3 Feb 2010 16:23:34 +0000 (08:23 -0800)
Rather than implementing the file reading logic ourselves, and
wind up leaking the FileInputStream's file descriptor until the
next GC, use IO.readFully(File) which wraps the read loop inside
of a try/finally to ensure the stream is closed before it exits.

Change-Id: I85a3fe87d5eff88fa788962004aebe19d2e91bb4
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Reviewed-by: Roland Grunberg <rgrunber@redhat.com>
org.eclipse.jgit/src/org/eclipse/jgit/diff/RawText.java

index 9a206af1902f3880cbe1c28ec15ceb1bedf5d805..c785534fbbefc0f3b0747f4050373bdd6204471e 100644 (file)
 package org.eclipse.jgit.diff;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 
+import org.eclipse.jgit.util.IO;
 import org.eclipse.jgit.util.IntList;
 import org.eclipse.jgit.util.RawParseUtils;
 
@@ -99,7 +99,7 @@ public class RawText implements Sequence {
         * @throws IOException if Exceptions occur while reading the file
         */
        public RawText(File file) throws IOException {
-               this(readFile(file));
+               this(IO.readFully(file));
        }
 
        public int size() {
@@ -202,16 +202,4 @@ public class RawText implements Sequence {
                        hash = (hash << 5) ^ (raw[ptr] & 0xff);
                return hash;
        }
-
-       private static byte[] readFile(File file) throws IOException {
-               byte[] result = new byte[(int)file.length()];
-               FileInputStream in = new FileInputStream(file);
-               for (int off = 0; off < result.length; ) {
-                       int read = in.read(result, off, result.length - off);
-                       if (read < 0)
-                               throw new IOException("Early EOF");
-                       off += read;
-               }
-               return result;
-       }
 }