Browse Source

Ensure PackWriter releases its ObjectReader

Change-Id: I3f8af29066cc5a2132dc4a75c9654d97800f2f18
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
tags/v0.9.1
Shawn O. Pearce 14 years ago
parent
commit
b5aa52e98a
1 changed files with 16 additions and 13 deletions
  1. 16
    13
      org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java

+ 16
- 13
org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java View File

@@ -610,19 +610,22 @@ public class PackWriter {
* stream.
*/
public void writePack(OutputStream packStream) throws IOException {
if ((reuseDeltas || reuseObjects) && reuseSupport != null)
searchForReuse();

out = new PackOutputStream(packStream, isDeltaBaseAsOffset());

writeMonitor.beginTask(WRITING_OBJECTS_PROGRESS, getObjectsNumber());
out.writeFileHeader(PACK_VERSION_GENERATED, getObjectsNumber());
writeObjects();
writeChecksum();

out = null;
reader.release();
writeMonitor.endTask();
try {
if ((reuseDeltas || reuseObjects) && reuseSupport != null)
searchForReuse();

out = new PackOutputStream(packStream, isDeltaBaseAsOffset());

int cnt = getObjectsNumber();
writeMonitor.beginTask(WRITING_OBJECTS_PROGRESS, cnt);
out.writeFileHeader(PACK_VERSION_GENERATED, cnt);
writeObjects();
writeChecksum();
writeMonitor.endTask();
} finally {
out = null;
reader.release();
}
}

private void searchForReuse() throws IOException {

Loading…
Cancel
Save