diff options
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/revwalk/FooterLineTest.java | 20 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/revwalk/FooterLine.java | 4 |
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)); } |