aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Nieder2013-07-17 15:19:12 (EDT)
committerJonathan Nieder2013-07-17 15:21:56 (EDT)
commit75d9b31f14d6226a535a80c05cffda29e55d2ceb (patch)
tree712573cb8c84b8436aaac836ce72d86b3b3d5ff2
parent459fd7d4bb659d021a511c3c9eea0af7dab21b3d (diff)
downloadjgit-75d9b31f14d6226a535a80c05cffda29e55d2ceb.zip
jgit-75d9b31f14d6226a535a80c05cffda29e55d2ceb.tar.gz
jgit-75d9b31f14d6226a535a80c05cffda29e55d2ceb.tar.bz2
Close unfinished archive entries on errorrefs/changes/28/14628/1
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>
-rw-r--r--org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/TarFormat.java7
-rw-r--r--org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/ZipFormat.java7
2 files changed, 10 insertions, 4 deletions
diff --git a/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/TarFormat.java b/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/TarFormat.java
index 23f4bed..cd98c03 100644
--- a/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/TarFormat.java
+++ b/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/TarFormat.java
@@ -93,8 +93,11 @@ public class TarFormat implements ArchiveCommand.Format<ArchiveOutputStream> {
}
entry.setSize(loader.getSize());
out.putArchiveEntry(entry);
- loader.copyTo(out);
- out.closeArchiveEntry();
+ try {
+ loader.copyTo(out);
+ } finally {
+ out.closeArchiveEntry();
+ }
}
public Iterable<String> suffixes() {
diff --git a/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/ZipFormat.java b/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/ZipFormat.java
index 00c962b..be7264b 100644
--- a/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/ZipFormat.java
+++ b/org.eclipse.jgit.archive/src/org/eclipse/jgit/archive/ZipFormat.java
@@ -82,8 +82,11 @@ public class ZipFormat implements ArchiveCommand.Format<ArchiveOutputStream> {
}
entry.setSize(loader.getSize());
out.putArchiveEntry(entry);
- loader.copyTo(out);
- out.closeArchiveEntry();
+ try {
+ loader.copyTo(out);
+ } finally {
+ out.closeArchiveEntry();
+ }
}
public Iterable<String> suffixes() {