]> source.dussan.org Git - jgit.git/commitdiff
Ensure the tree parser resets in ObjectWalk 58/258/1
authorShawn O. Pearce <spearce@spearce.org>
Tue, 2 Feb 2010 19:39:24 +0000 (11:39 -0800)
committerShawn O. Pearce <spearce@spearce.org>
Tue, 2 Feb 2010 22:23:30 +0000 (14:23 -0800)
During dispose() or reset() we are suppose to be restoring the
ObjectWalk instance back to the original pre-walk state, but we
failed to reset the tree parser.  This can lead to confusing state
if the ObjectWalk was reused by the caller, as entries from the
old walk might be reported as part of the new walk.

Change-Id: I6237bae7bfd3794e8b9a92b4dd475559cc72e634
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java

index 69045859300c064a71d49229be8889c97545674b..b3acf518cf239cdacd63d2e57656fd7f6003434d 100644 (file)
@@ -371,6 +371,7 @@ public class ObjectWalk extends RevWalk {
        public void dispose() {
                super.dispose();
                pendingObjects = new BlockObjQueue();
+               treeWalk = new CanonicalTreeParser();
                nextSubtree = null;
                currentTree = null;
        }
@@ -379,6 +380,7 @@ public class ObjectWalk extends RevWalk {
        protected void reset(final int retainFlags) {
                super.reset(retainFlags);
                pendingObjects = new BlockObjQueue();
+               treeWalk = new CanonicalTreeParser();
                nextSubtree = null;
        }