aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java20
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java4
2 files changed, 24 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java
index 303aedcd00..ca6fd4644e 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java
@@ -369,6 +369,26 @@ public class FooterLineTest extends RepositoryTestCase {
f.getValue());
}
+ @Test
+ public void testFirstLineNeverFooter() {
+ String msg = buildMessage(
+ String.join("\n", "First-Line: is never a footer", "Foo: ter",
+ "1-is: also a footer"));
+ List<FooterLine> footers = FooterLine.fromMessage(msg);
+ assertNotNull(footers);
+ assertEquals(2, footers.size());
+ }
+
+ @Test
+ public void testLineAfterFooters() {
+ String msg = buildMessage(
+ String.join("\n", "Subject line: is never a footer", "Foo: ter",
+ "1-is: also a footer", "this is not a footer"));
+ List<FooterLine> footers = FooterLine.fromMessage(msg);
+ assertNotNull(footers);
+ assertEquals(2, footers.size());
+ }
+
private String buildMessage(String msg) {
StringBuilder buf = new StringBuilder();
buf.append("tree " + ObjectId.zeroId().name() + "\n");
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
index cadeaec6e0..309d46f690 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java
@@ -107,6 +107,10 @@ public final class FooterLine {
break;
}
}
+ if (keyStart == msgB) {
+ // Fist line cannot be a footer
+ continue;
+ }
r.add(new FooterLine(raw, enc, keyStart, keyEnd, valStart, valEnd));
}