diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java index f07427313..e5e1e7ad6 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java @@ -556,6 +556,15 @@ public class ConfigTest { assertEquals(result, config.toText()); } + @Test + public void testNoFinalNewline() throws ConfigInvalidException { + Config c = parse("[a]\n" + + "x = 0\n" + + "y = 1"); + assertEquals("0", c.getString("a", null, "x")); + assertEquals("1", c.getString("a", null, "y")); + } + private static void assertReadLong(long exp) throws ConfigInvalidException { assertReadLong(exp, String.valueOf(exp)); } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java index af04b1090..8240ac8f7 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Config.java @@ -1002,8 +1002,11 @@ public class Config { ConfigLine e = new ConfigLine(); for (;;) { int input = in.read(); - if (-1 == input) + if (-1 == input) { + if (e.section != null) + newEntries.add(e); break; + } final char c = (char) input; if ('\n' == c) {