diff options
author | Matthias Sohn <matthias.sohn@sap.com> | 2017-02-03 00:47:14 +0100 |
---|---|---|
committer | Matthias Sohn <matthias.sohn@sap.com> | 2017-02-07 00:50:09 +0100 |
commit | 08480c948c47b905ace6ecec43ae0c92a218d1d6 (patch) | |
tree | 0850a6ca10b2f435854f09fae9ad4ebadde71e43 /org.eclipse.jgit | |
parent | d4bd09b78daa733933a15733bc6ebbaa0a0485f1 (diff) | |
download | jgit-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.java | 15 |
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); } /** |