Merge "ObjectWalk: Add null check before skip tree."
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 a3bfb71..da7b266 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 @@
 		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 21ce78e..04a4b4c 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 @@
 	 * @since 5.4
 	 */
 	public void skipTree() {
-		currVisit.ptr = currVisit.buf.length;
+		if (currVisit != null) {
+			currVisit.ptr = currVisit.buf.length;
+		}
 	}
 
 	/**