Uploaded image for project: 'Apache Jena'
  1. Apache Jena
  2. JENA-1521

TDB2 backed Datasets cannot be re-opened.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • Jena 3.8.0
    • None
    • None
    • Apache Jena: 3.7.0

      Java: 1.8_162

    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:

      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()); }
      
      }
      

       

      Attachments

        Issue Links

          Activity

            People

              andy Andy Seaborne
              GregAlbiston Greg Albiston
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: