Hi,

I noticed (the hard way) that
DatasetGraphTDB.close() does not call DatasetGraphTDB.finishRequest() before closing the graph.
This then causes a NoSuchElementException when the dataset is later used.

Senario:
I loaded a graph from rdf using TDBLoader.loadGraph
I added the graph to the dataset using addGraph

I queried the dataset with success. Closing the query.

I closed the dataset and then reopened it.
Exact same query with the exact same code failed.

I then added DatasetGraphTDB.finishRequest()before closing the dataset and it worked.

How I agree calling finishRequest() is good programing style and I should have done that.

However writing close() expecting a user to have called finishRequest() is poor style.

--
Christian Brenninkmeijer
Department of Computer Science
University of Manchester

Reply via email to