Hi
Jena 2.11.1 TBD throws ClosedException: "already closed", when 2.11.0 did
not.
The test below involves adding a triple in a named model,
closing the model,
re-opening the dataset and the same model.
Note that closing the whole dataset instead of the model works fine.
Here is the test (sorry , it's in Scala):
@Test def storeTripleinNamedDatasetandRetrieve() {
val directory = new File("bbtest");
directory.mkdirs();
val dataset = TDBFactory.createDataset(directory.getAbsolutePath());
val modelName = "test" // "<test>"
val model = dataset.getNamedModel(modelName);
val obj = "a"
val subject = "c"
val predicate = model.createProperty("p");
val subjectResource = model.createResource(subject);
val objectResource = model.createResource(obj);
model.add(model.createStatement(subjectResource, predicate,
objectResource))
if (!model.isClosed()) {
model.close(); // com.hp.hpl.jena.shared.ClosedException: already
closed
// dataset.close(); // OK!
System.out.println("Test TDB: model closed:\t" + dataset)
}
{
val dataset = TDBFactory.createDataset(directory.getAbsolutePath());
val model = dataset.getNamedModel(modelName);
System.out.println("Test TDB: model reopened:\t" + dataset)
println(
"model.size() " +
model.size())
val sIter = model.listStatements()
for (st <- sIter) {
println(st)
}
assertTrue("model.size == 1", model.size == 1);
}
Complete code:
http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/src/test/scala/eulergui/jena/JenaTDBTest.scala
--
Jean-Marc Vanel
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
http://deductions-software.com/
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui