]> source.dussan.org Git - jgit.git/commit
Buffer overflow output stream 67/45067/1
authorShawn Pearce <spearce@spearce.org>
Wed, 1 Apr 2015 19:59:33 +0000 (12:59 -0700)
committerShawn Pearce <spearce@spearce.org>
Wed, 1 Apr 2015 20:02:09 +0000 (13:02 -0700)
commitd94ce9c754b740defbd75230663d323f64cc9648
tree15fccba70fe97df5aa1312f7922453fb88bb5f91
parente4433e5e37b827aa6af3320635c8af0877cd4a60
Buffer overflow output stream

Most callers/users of TemporaryBuffer are sizing the in-memory
portion large enough that most outputs fit into RAM. With this
assumption they don't pay close attention to the size of IOs
being written, as it "should" just be a copy from one byte array
to another.

Overflow sets up a local file handle, which is costly to write to
for small IO units. Wrap the local file in a BufferedOutputStream
to combine small writes together. Larger writes can still bypass the
buffer as BOS automatically avoids copying for larger writes.

Change-Id: I09f4136dd65c48830cfda86d9101bc647581018a
org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java