Browse Source

Merge "Cleanup possiblyFilteredInputStream() in WorkingTreeIterator"

stable-2.0
Matthias Sohn 13 years ago committed by Gerrit Code Review @ Eclipse.org
parent
commit
fcacfdeaf7
  1. 55
      org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java

55
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/WorkingTreeIterator.java

@ -335,39 +335,36 @@ public abstract class WorkingTreeIterator extends AbstractTreeIterator {
private InputStream possiblyFilteredInputStream(final Entry e, private InputStream possiblyFilteredInputStream(final Entry e,
final InputStream is, final long len) throws IOException { final InputStream is, final long len) throws IOException {
InputStream filteredIs;
if (!mightNeedCleaning()) { if (!mightNeedCleaning()) {
filteredIs = is;
canonLen = len; canonLen = len;
} else { return is;
if (len <= MAXIMUM_FILE_SIZE_TO_READ_FULLY) { }
ByteBuffer rawbuf = IO.readWholeStream(is, (int) len);
byte[] raw = rawbuf.array(); if (len <= MAXIMUM_FILE_SIZE_TO_READ_FULLY) {
int n = rawbuf.limit(); ByteBuffer rawbuf = IO.readWholeStream(is, (int) len);
if (!isBinary(raw, n)) { byte[] raw = rawbuf.array();
rawbuf = filterClean(raw, n); int n = rawbuf.limit();
raw = rawbuf.array(); if (!isBinary(raw, n)) {
n = rawbuf.limit(); rawbuf = filterClean(raw, n);
} raw = rawbuf.array();
filteredIs = new ByteArrayInputStream(raw, 0, n); n = rawbuf.limit();
canonLen = n;
} else {
if (isBinary(e)) {
filteredIs = is;
canonLen = len;
} else {
final InputStream lenIs = filterClean(e
.openInputStream());
try {
canonLen = computeLength(lenIs);
} finally {
safeClose(lenIs);
}
filteredIs = filterClean(is);
}
} }
canonLen = n;
return new ByteArrayInputStream(raw, 0, n);
}
if (isBinary(e)) {
canonLen = len;
return is;
}
final InputStream lenIs = filterClean(e.openInputStream());
try {
canonLen = computeLength(lenIs);
} finally {
safeClose(lenIs);
} }
return filteredIs; return filterClean(is);
} }
private static void safeClose(final InputStream in) { private static void safeClose(final InputStream in) {

Loading…
Cancel
Save