Skip to content

Commit f2a8938

Browse files
committed
GH-5407 Add failing Turtle test for integer-literal + dot at EOF; require issue confirmation before branching
1 parent ad20b90 commit f2a8938

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -510,6 +510,7 @@ Do **not** modify existing headers’ years.
510510
511511
## Branch & PR Workflow (Agent)
512512
513+
- Confirm issue number first (mandatory): before creating a branch, pause and request/confirm the GitHub issue number. Do not proceed to branch creation until the issue number is provided or confirmed.
513514
- Name branch: `GH-<issue>-<short-slug>` (kebab‑case slug).
514515
- Create branch: `git checkout -b GH-XXXX-your-slug`.
515516
- Stage changes: `git add -A` (ensure new Java files have the required header).

core/rio/turtle/src/test/java/org/eclipse/rdf4j/rio/turtle/TurtleParserTest.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,27 @@ public void testParseDots() throws IOException {
8989

9090
}
9191

92+
@Test
93+
public void testIntegerFollowedByDotAtEOF() throws IOException {
94+
// Reproduces bug: integer literal immediately followed by statement terminator '.' at EOF
95+
String data = prefixes + ":alice :age 30."; // no trailing whitespace/newline
96+
97+
parser.parse(new StringReader(data), baseURI);
98+
99+
assertTrue(errorCollector.getWarnings().isEmpty());
100+
assertTrue(errorCollector.getErrors().isEmpty());
101+
assertTrue(errorCollector.getFatalErrors().isEmpty());
102+
103+
assertEquals(1, statementCollector.getStatements().size());
104+
Statement st = statementCollector.getStatements().iterator().next();
105+
assertEquals(vf.createIRI("http://example.org/alice"), st.getSubject());
106+
assertEquals(vf.createIRI("http://example.org/age"), st.getPredicate());
107+
assertTrue(st.getObject() instanceof Literal);
108+
Literal lit = (Literal) st.getObject();
109+
assertEquals("30", lit.getLabel());
110+
assertEquals(XSD.INTEGER, lit.getDatatype());
111+
}
112+
92113
@Test
93114
public void testParseIllegalURIFatal() throws IOException {
94115
String data = " <urn:foo_bar\\r> <urn:foo> <urn:bar> ; <urn:foo2> <urn:bar2> . <urn:foobar> <urn:food> <urn:barf> . ";

0 commit comments

Comments
 (0)