[
https://issues.apache.org/jira/browse/JENA-1521?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Seaborne updated JENA-1521:
--------------------------------
Description:
If a Dataset connected to with TDB2Factory.connectDataset() is opened, closed
and then later re-opened it is reported that the Dataset is closed.
Opening, closing and re-opening a Dataset with TDBFactory.createDataset()
causes no issues.
Example code to reproduce:
{noformat}
public void testTDB2OpenClose() {
System.out.println("TDB2 Open Close");
try {
Dataset dataset = TDB2Factory.connectDataset("test_tdb2");
dataset.begin(ReadWrite.WRITE);
Model defaultModel = dataset.getDefaultModel();
defaultModel.add(ResourceFactory.createResource("http://example.org/my#SubjA"),
ResourceFactory.createProperty("http://example.org/my#PropA"),
ResourceFactory.createResource("http://example.org/my#ObjA"));
dataset.commit();
dataset.end();
dataset.close();
Dataset dataset2 = TDB2Factory.connectDataset("test_tdb2");
dataset2.begin(ReadWrite.READ);
Model readModel = dataset2.getDefaultModel();
Iterator<Statement> statements = readModel.listStatements();
while (statements.hasNext())
{ Statement statement = statements.next(); System.out.println(statement); }
dataset2.end();
dataset2.close();
} catch (Exception ex) \{ System.out.println("Exception: " + ex.getMessage());
}
}
{noformat}
{noformat}
public void testTDB1OpenClose() {
System.out.println("TDB1 Open Close");
try {
Dataset dataset = TDBFactory.createDataset("test_tdb1");
dataset.begin(ReadWrite.WRITE);
Model defaultModel = dataset.getDefaultModel();
defaultModel.add(ResourceFactory.createResource("http://example.org/my#SubjA"),
ResourceFactory.createProperty("http://example.org/my#PropA"),
ResourceFactory.createResource("http://example.org/my#ObjA"));
dataset.commit();
dataset.end();
dataset.close();
Dataset dataset2 = TDBFactory.createDataset("test_tdb1");
dataset2.begin(ReadWrite.READ);
Model readModel = dataset2.getDefaultModel();
Iterator<Statement> statements = readModel.listStatements();
while (statements.hasNext()) \{ Statement statement = statements.next();
System.out.println(statement); }
dataset2.end();
dataset2.close();
} catch (Exception ex)
{ System.out.println("Exception: " + ex.getMessage()); }
}
{noformat}
was:
If a Dataset connected to with TDB2Factory.connectDataset() is opened, closed
and then later re-opened it is reported that the Dataset is closed.
Opening, closing and re-opening a Dataset with TDBFactory.createDataset()
causes no issues.
Example code to reproduce:
public void testTDB2OpenClose() {
System.out.println("TDB2 Open Close");
try {
Dataset dataset = TDB2Factory.connectDataset("test_tdb2");
dataset.begin(ReadWrite.WRITE);
Model defaultModel = dataset.getDefaultModel();
defaultModel.add(ResourceFactory.createResource("http://example.org/my#SubjA"),
ResourceFactory.createProperty("http://example.org/my#PropA"),
ResourceFactory.createResource("http://example.org/my#ObjA"));
dataset.commit();
dataset.end();
dataset.close();
Dataset dataset2 = TDB2Factory.connectDataset("test_tdb2");
dataset2.begin(ReadWrite.READ);
Model readModel = dataset2.getDefaultModel();
Iterator<Statement> statements = readModel.listStatements();
while (statements.hasNext()) {
Statement statement = statements.next();
System.out.println(statement);
}
dataset2.end();
dataset2.close();
} catch (Exception ex) {
System.out.println("Exception: " + ex.getMessage());
}
}
public void testTDB1OpenClose() {
System.out.println("TDB1 Open Close");
try {
Dataset dataset = TDBFactory.createDataset("test_tdb1");
dataset.begin(ReadWrite.WRITE);
Model defaultModel = dataset.getDefaultModel();
defaultModel.add(ResourceFactory.createResource("http://example.org/my#SubjA"),
ResourceFactory.createProperty("http://example.org/my#PropA"),
ResourceFactory.createResource("http://example.org/my#ObjA"));
dataset.commit();
dataset.end();
dataset.close();
Dataset dataset2 = TDBFactory.createDataset("test_tdb1");
dataset2.begin(ReadWrite.READ);
Model readModel = dataset2.getDefaultModel();
Iterator<Statement> statements = readModel.listStatements();
while (statements.hasNext()) {
Statement statement = statements.next();
System.out.println(statement);
}
dataset2.end();
dataset2.close();
} catch (Exception ex) {
System.out.println("Exception: " + ex.getMessage());
}
}
> TDB2 backed Datasets cannot be re-opened.
> -----------------------------------------
>
> Key: JENA-1521
> URL: https://issues.apache.org/jira/browse/JENA-1521
> Project: Apache Jena
> Issue Type: Bug
> Environment: Apache Jena: 3.7.0
> Java: 1.8_162
> Reporter: Greg Albiston
> Priority: Major
>
> If a Dataset connected to with TDB2Factory.connectDataset() is opened, closed
> and then later re-opened it is reported that the Dataset is closed.
> Opening, closing and re-opening a Dataset with TDBFactory.createDataset()
> causes no issues.
> Example code to reproduce:
> {noformat}
> public void testTDB2OpenClose() {
> System.out.println("TDB2 Open Close");
> try {
> Dataset dataset = TDB2Factory.connectDataset("test_tdb2");
> dataset.begin(ReadWrite.WRITE);
> Model defaultModel = dataset.getDefaultModel();
>
> defaultModel.add(ResourceFactory.createResource("http://example.org/my#SubjA"),
> ResourceFactory.createProperty("http://example.org/my#PropA"),
> ResourceFactory.createResource("http://example.org/my#ObjA"));
> dataset.commit();
> dataset.end();
> dataset.close();
> Dataset dataset2 = TDB2Factory.connectDataset("test_tdb2");
> dataset2.begin(ReadWrite.READ);
> Model readModel = dataset2.getDefaultModel();
> Iterator<Statement> statements = readModel.listStatements();
> while (statements.hasNext())
> { Statement statement = statements.next(); System.out.println(statement); }
> dataset2.end();
> dataset2.close();
> } catch (Exception ex) \{ System.out.println("Exception: " +
> ex.getMessage()); }
> }
> {noformat}
> {noformat}
> public void testTDB1OpenClose() {
>
> System.out.println("TDB1 Open Close");
> try {
> Dataset dataset = TDBFactory.createDataset("test_tdb1");
> dataset.begin(ReadWrite.WRITE);
> Model defaultModel = dataset.getDefaultModel();
>
> defaultModel.add(ResourceFactory.createResource("http://example.org/my#SubjA"),
> ResourceFactory.createProperty("http://example.org/my#PropA"),
> ResourceFactory.createResource("http://example.org/my#ObjA"));
> dataset.commit();
> dataset.end();
> dataset.close();
>
> Dataset dataset2 = TDBFactory.createDataset("test_tdb1");
> dataset2.begin(ReadWrite.READ);
> Model readModel = dataset2.getDefaultModel();
> Iterator<Statement> statements = readModel.listStatements();
> while (statements.hasNext()) \{ Statement statement = statements.next();
> System.out.println(statement); }
> dataset2.end();
> dataset2.close();
> } catch (Exception ex)
> { System.out.println("Exception: " + ex.getMessage()); }
> }
> {noformat}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)