Close unfinished archive entries on error

Otherwise the underlying error is hidden by an "IOException: This
archives contains unclosed entries." when jgit tries to close the
archive.

Reported-by: Dave Borowitz <dborowitz@google.com>
Change-Id: I594dcdf366200b802e13e5a645fe06597feb7bb4
Signed-off-by: Jonathan Nieder <jrn@google.com>
This commit is contained in:
Jonathan Nieder 2013-07-17 12:19:12 -07:00
parent 459fd7d4bb
commit 75d9b31f14
2 changed files with 10 additions and 4 deletions

View File

@ -93,8 +93,11 @@ public void putEntry(ArchiveOutputStream out,
} }
entry.setSize(loader.getSize()); entry.setSize(loader.getSize());
out.putArchiveEntry(entry); out.putArchiveEntry(entry);
loader.copyTo(out); try {
out.closeArchiveEntry(); loader.copyTo(out);
} finally {
out.closeArchiveEntry();
}
} }
public Iterable<String> suffixes() { public Iterable<String> suffixes() {

View File

@ -82,8 +82,11 @@ public void putEntry(ArchiveOutputStream out,
} }
entry.setSize(loader.getSize()); entry.setSize(loader.getSize());
out.putArchiveEntry(entry); out.putArchiveEntry(entry);
loader.copyTo(out); try {
out.closeArchiveEntry(); loader.copyTo(out);
} finally {
out.closeArchiveEntry();
}
} }
public Iterable<String> suffixes() { public Iterable<String> suffixes() {