Ensure PackWriter releases its ObjectReader
Change-Id: I3f8af29066cc5a2132dc4a75c9654d97800f2f18 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
e01abbd543
commit
b5aa52e98a
|
@ -610,19 +610,22 @@ private List<ObjectToPack> sortByName() {
|
||||||
* stream.
|
* stream.
|
||||||
*/
|
*/
|
||||||
public void writePack(OutputStream packStream) throws IOException {
|
public void writePack(OutputStream packStream) throws IOException {
|
||||||
if ((reuseDeltas || reuseObjects) && reuseSupport != null)
|
try {
|
||||||
searchForReuse();
|
if ((reuseDeltas || reuseObjects) && reuseSupport != null)
|
||||||
|
searchForReuse();
|
||||||
|
|
||||||
out = new PackOutputStream(packStream, isDeltaBaseAsOffset());
|
out = new PackOutputStream(packStream, isDeltaBaseAsOffset());
|
||||||
|
|
||||||
writeMonitor.beginTask(WRITING_OBJECTS_PROGRESS, getObjectsNumber());
|
int cnt = getObjectsNumber();
|
||||||
out.writeFileHeader(PACK_VERSION_GENERATED, getObjectsNumber());
|
writeMonitor.beginTask(WRITING_OBJECTS_PROGRESS, cnt);
|
||||||
writeObjects();
|
out.writeFileHeader(PACK_VERSION_GENERATED, cnt);
|
||||||
writeChecksum();
|
writeObjects();
|
||||||
|
writeChecksum();
|
||||||
out = null;
|
writeMonitor.endTask();
|
||||||
reader.release();
|
} finally {
|
||||||
writeMonitor.endTask();
|
out = null;
|
||||||
|
reader.release();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void searchForReuse() throws IOException {
|
private void searchForReuse() throws IOException {
|
||||||
|
|
Loading…
Reference in New Issue