diff options
author | Edwin Kempin <edwin.kempin@sap.com> | 2012-10-18 12:33:47 +0200 |
---|---|---|
committer | Edwin Kempin <edwin.kempin@sap.com> | 2012-10-22 11:04:18 +0200 |
commit | 2dc9eda865c137913f9f58f377e6b3675b1112db (patch) | |
tree | 427321c1c285d9ce7d1bd410ef052971aa2fc606 | |
parent | e3aa0f541fe2b1f151abdb91aeeb6d85f40837e8 (diff) |
Ensure that RevWalk in SubmoduleOp is released
Change-Id: I26fd8e7b1736a2f757e533a9db95590d482cd992
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java index 2e70621427..ccb91a3a9e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/SubmoduleOp.java @@ -365,14 +365,17 @@ public class SubmoduleOp { private static DirCache readTree(final Repository pdb, final Ref branch) throws MissingObjectException, IncorrectObjectTypeException, IOException { final RevWalk rw = new RevWalk(pdb); - - final DirCache dc = DirCache.newInCore(); - final DirCacheBuilder b = dc.builder(); - b.addTree(new byte[0], // no prefix path - DirCacheEntry.STAGE_0, // standard stage - pdb.newObjectReader(), rw.parseTree(branch.getObjectId())); - b.finish(); - return dc; + try { + final DirCache dc = DirCache.newInCore(); + final DirCacheBuilder b = dc.builder(); + b.addTree(new byte[0], // no prefix path + DirCacheEntry.STAGE_0, // standard stage + pdb.newObjectReader(), rw.parseTree(branch.getObjectId())); + b.finish(); + return dc; + } finally { + rw.release(); + } } private static void logAndThrowSubmoduleException(final String errorMsg, |