Rob Vesse created JENA-345:
------------------------------

             Summary: execConstructTriples() does not eliminate malformed 
triples from it's output
                 Key: JENA-345
                 URL: https://issues.apache.org/jira/browse/JENA-345
             Project: Apache Jena
          Issue Type: Bug
          Components: ARQ
    Affects Versions: ARQ 2.9.4
            Reporter: Rob Vesse
            Assignee: Rob Vesse


Start from any model which has triples containing only literals as their 
subjects, then try the following:

    @Test public void testConstructRejectsBadTriples1()
    {
        String queryString = "CONSTRUCT { ?s ?p ?o } WHERE { ?o ?p ?s }";
        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()) {
            count++;
            ts.next();
        }
        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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to