aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit/src/org/eclipse/jgit
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse/jgit')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/util/WorkTreeUpdater.java32
1 files changed, 20 insertions, 12 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/util/WorkTreeUpdater.java b/org.eclipse.jgit/src/org/eclipse/jgit/util/WorkTreeUpdater.java
index fb0b33a042..f872f9fba5 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/util/WorkTreeUpdater.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/util/WorkTreeUpdater.java
@@ -554,22 +554,30 @@ public class WorkTreeUpdater implements Closeable {
if (inCore) {
return;
}
- CheckoutMetadata checkoutMetadata = new CheckoutMetadata(streamType, smudgeCommand);
+ CheckoutMetadata metadata = new CheckoutMetadata(streamType,
+ smudgeCommand);
if (safeWrite) {
- try (org.eclipse.jgit.util.TemporaryBuffer buffer =
- new org.eclipse.jgit.util.TemporaryBuffer.LocalFile(null)) {
- // Write to a buffer and copy to the file only if everything was fine.
- DirCacheCheckout.getContent(
- repo, path, checkoutMetadata, resultStreamLoader, null, buffer);
- InputStream bufIn = buffer.openInputStream();
- Files.copy(bufIn, file.toPath(), StandardCopyOption.REPLACE_EXISTING);
+ // Write to a buffer and copy to the file only if everything was
+ // fine.
+ TemporaryBuffer buffer = new TemporaryBuffer.LocalFile(null);
+ try {
+ try (TemporaryBuffer buf = buffer) {
+ DirCacheCheckout.getContent(repo, path, metadata,
+ resultStreamLoader, null, buf);
+ }
+ try (InputStream bufIn = buffer.openInputStream()) {
+ Files.copy(bufIn, file.toPath(),
+ StandardCopyOption.REPLACE_EXISTING);
+ }
+ } finally {
+ buffer.destroy();
}
return;
}
- OutputStream outputStream = new FileOutputStream(file);
- DirCacheCheckout.getContent(
- repo, path, checkoutMetadata, resultStreamLoader, null, outputStream);
-
+ try (OutputStream outputStream = new FileOutputStream(file)) {
+ DirCacheCheckout.getContent(repo, path, metadata,
+ resultStreamLoader, null, outputStream);
+ }
}
/**