Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
ARQ 2.9.4
Description
Start from any model which has triples containing only literals as their subjects, then try the following:
@Test public void testConstructRejectsBadTriples1()
{
String queryString = "CONSTRUCT
Query q = QueryFactory.create(queryString);
QueryExecution qExec = QueryExecutionFactory.create(q, m);
Model resultModel = qExec.execConstruct();
assertEquals(0, resultModel.size());
}
@Test public void testConstructRejectsBadTriples2()
{
String queryString = "CONSTRUCT { ?s ?p ?o }
WHERE
{ ?o ?p ?s }";
Query q = QueryFactory.create(queryString);
QueryExecution qExec = QueryExecutionFactory.create(q, m);
Iterator<Triple> ts = qExec.execConstructTriples();
long count = 0;
while (ts.hasNext())
assertEquals(0, count);
}
The first test passes because execConstruct() correctly rejects triples with literal subjects as invalid, the second test fails because execConstructTriples() does not follow this behavior.