From cc6210619b82dc0c7bdb014b5ccf29d6f93e5ef3 Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Mon, 2 Aug 2010 10:17:21 -0700 Subject: [PATCH] Flush the pack header as soon as its ready When the output stream is deeply buffered (e.g. 1 MiB or more in an HTTP servlet on some containers) trying to kick out the header earlier will prevent the client from stalling hard while the first 1 MiB is received and it can process the pack header. Forcing a flush here lets the client see the header and start its progress monitor for "Receiving objects: (1/N)" so the user knows there is still activity occurring, even though the buffering may cause there to be some lag as the buffer fills up on the sending side. Change-Id: I3edf39e8f703fe87a738dc236d426b194db85e3a Signed-off-by: Shawn O. Pearce --- .../src/org/eclipse/jgit/storage/pack/PackWriter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java index df5594cf4..1bb11c3a0 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java @@ -487,6 +487,7 @@ public void writePack(ProgressMonitor compressMonitor, int objCnt = getObjectsNumber(); writeMonitor.beginTask(JGitText.get().writingObjects, objCnt); out.writeFileHeader(PACK_VERSION_GENERATED, objCnt); + out.flush(); writeObjects(writeMonitor, out); writeChecksum(out);