summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit
diff options
context:
space:
mode:
authorMatthias Sohn <matthias.sohn@sap.com>2017-02-03 00:47:14 +0100
committerMatthias Sohn <matthias.sohn@sap.com>2017-02-07 00:50:09 +0100
commit08480c948c47b905ace6ecec43ae0c92a218d1d6 (patch)
tree0850a6ca10b2f435854f09fae9ad4ebadde71e43 /org.eclipse.jgit
parentd4bd09b78daa733933a15733bc6ebbaa0a0485f1 (diff)
downloadjgit-08480c948c47b905ace6ecec43ae0c92a218d1d6.tar.gz
jgit-08480c948c47b905ace6ecec43ae0c92a218d1d6.zip
[infer] Fix ObjectWalk leak in PackWriter.preparePack()
Change-Id: I5d2455404e507faa717e9d916e9b6cd80aa91473 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
Diffstat (limited to 'org.eclipse.jgit')
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index ffab1a7465..14e4fa6fd7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -745,14 +745,15 @@ public class PackWriter implements AutoCloseable {
@NonNull Set<? extends ObjectId> want,
@NonNull Set<? extends ObjectId> have,
@NonNull Set<? extends ObjectId> shallow) throws IOException {
- ObjectWalk ow;
- if (shallowPack) {
- ow = new DepthWalk.ObjectWalk(reader, depth - 1);
- } else {
- ow = new ObjectWalk(reader);
+ try (ObjectWalk ow = getObjectWalk()) {
+ ow.assumeShallow(shallow);
+ preparePack(countingMonitor, ow, want, have);
}
- ow.assumeShallow(shallow);
- preparePack(countingMonitor, ow, want, have);
+ }
+
+ private ObjectWalk getObjectWalk() {
+ return shallowPack ? new DepthWalk.ObjectWalk(reader, depth - 1)
+ : new ObjectWalk(reader);
}
/**