ошибки в транзакции в jena tdb?

Я пытаюсь записать свойства в модель, а затем запросить ее. Эта часть моего кода:

String directory = "EMAILADDRESS" ;
//create the dataset for the tdb store
Dataset ds = TDBFactory.createDataset(directory) ;
//create default rdf model
ds.begin(ReadWrite.WRITE);
Model model = ds.getDefaultModel() ;
//write to the tdb dataset

Когда я пишу это, а затем запрашиваю, запрос не показывает результата ... но когда я меняю порядок моделей и начинаю, т.е.

Model model = ds.getDefaultModel() ;
//write to the tdb dataset     
ds.begin(ReadWrite.WRITE);

Тогда это работает отлично! но иногда выдает эту ошибку:

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction

Я знаю, что первый способ верен, но я не понимаю, почему он не отвечает на запросы. Это код запроса:

public class test4query extends Object {
    public static String[] arr=new String[30];
    public  void  mai (String s) {
        String directory = "EMAILADDRESS" ;
        Dataset ds = TDBFactory.createDataset(directory) ;
        ds.begin(ReadWrite.READ) ;
        Model model = ds.getDefaultModel() ;

        QueryExecution qExec = QueryExecutionFactory.create(s, ds) ;
        int i=0;
        try{
             ResultSet rs = qExec.execSelect() ;
             String x=rs.toString();

             while (rs.hasNext()) {
                 QuerySolution qs = rs.next();
                 String rds;
                 if(qs.get("x")!=null) {
                    rds = qs.get("x").toString();
                 } else {
                    rds="hi";
                 }
                 if(rds==null) {
                    break;
                 }
                 System.out.println(rds);
                 arr[i] = rds;
                 i++;   
             }
        } finally
             {qExec.close() ;
             ds.commit();
             ds.end();
        }

    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос