Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
Jena 2.7.4
-
None
Description
1) model.listStatements(s,p,null,lang) doesn't filter on lang param
2) model.listStatements(s,p,o,null) only returns statements whose object has lang "" (when o != null)
TEST 1
import org.junit.Test;
import com.hp.hpl.jena.rdf.model.*;
public class LstStmt1 {
@Test
public final void test() {
Model m = ModelFactory.createDefaultModel();
Resource s = m.createResource("http://www.a.com/s");
Property p = m.createProperty("http://www.a.com/p");
m.add(s,p,m.createResource("http://www.a.com/o"));
m.add(s,p,"texte","fr");
m.add(s,p,"text","en");
StmtIterator it = m.listStatements(s, p, null,"en");
// list all the statements - not what one can expect
for (;it.hasNext()
}
}
TEST2
public class LstStmt2 {
@Test
public final void test() {
Model m = ModelFactory.createDefaultModel();
Resource s = m.createResource("http://www.a.com/s");
Property p = m.createProperty("http://www.a.com/p");
m.add(s,p,"text","en");
m.add(s,p,"text");
StmtIterator it = m.listStatements(s, p,"text",null);
// should list the 2 statements, but doesn't: only the one without lang
for (;it.hasNext() { System.out.println(it.next()); }
}
}