Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYunjie Li2020-02-26 01:29:38 +0000
committerYunjie Li2020-02-26 20:03:58 +0000
commit7ba261fb5f516dce83adc6f3bd4ac1666a51193e (patch)
treea8b95b6e3922dd213ecf84cb9d2cab84609e2b90
parentf63583928fc1784a98082e46fcb5d8c5445afb08 (diff)
downloadjgit-7ba261fb5f516dce83adc6f3bd4ac1666a51193e.tar.gz
jgit-7ba261fb5f516dce83adc6f3bd4ac1666a51193e.tar.xz
jgit-7ba261fb5f516dce83adc6f3bd4ac1666a51193e.zip
ObjectWalk: Add null check before skip tree.
currVisit could be null if a blob is marked as start point in ObjectWalk. Add null check before skipping current tree. Change-Id: Ic5d876fe2800f3373d136979be6c27d1bbd38dc1 Signed-off-by: Yunjie Li <yunjieli@google.com>
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java8
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java4
2 files changed, 11 insertions, 1 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java
index a3bfb71e40..da7b266125 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/ObjectWalkTest.java
@@ -216,4 +216,12 @@ public class ObjectWalkTest extends RevWalkTestCase {
assertSame(rw.lookupBlob(bId), objw.nextObject());
assertNull(objw.nextObject());
}
+
+ @Test
+ public void testSkipTreeWhenStartFromBlob() throws Exception {
+ final RevBlob f1 = blob("1");
+ objw.markStart(f1);
+ assertSame(f1, objw.nextObject());
+ objw.skipTree();
+ }
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
index 21ce78e7e9..04a4b4c631 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java
@@ -364,7 +364,9 @@ public class ObjectWalk extends RevWalk {
* @since 5.4
*/
public void skipTree() {
- currVisit.ptr = currVisit.buf.length;
+ if (currVisit != null) {
+ currVisit.ptr = currVisit.buf.length;
+ }
}
/**

Back to the top