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

TDB2 backed Datasets cannot be re-opened.

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Jena 3.8.0
    • Component/s: None
    • Labels:
      None
    • Environment:

      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

              • Assignee:
                andy.seaborne Andy Seaborne
                Reporter:
                GregAlbiston Greg Albiston
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: