Small world?

See https://issues.apache.org/jira/browse/JENA-234 (yesterday/today)

Workaround - try calling model.close() after TDBLoader.loadModel

        Andy


On 13/04/12 14:26, Jim Reilly wrote:


I have been trying to load an OWL doc into TDB and get an error when I query 
the DB after a JVM restart.


My load() method works, meaning the printAllQuery() shows the results.
But, when the JVM ends, and I re-start it, by just calling the  
printAllQuery(), it gives me this error:
java.lang.NullPointerException at 
com.hp.hpl.jena.tdb.store.DatasetPrefixesTDB.readPrefixMap(DatasetPrefixesTDB.java:175) at 
com.hp.hpl.jena.sparql.graph.GraphPrefixesProjection.getNsPrefixMap(GraphPrefixesProjection.java:62)
 at 
com.hp.hpl.jena.tdb.store.DatasetPrefixesTDB.getPrefixMapping(DatasetPrefixesTDB.java:224) 
at 
com.hp.hpl.jena.tdb.store.DatasetPrefixesTDB.getPrefixMapping(DatasetPrefixesTDB.java:215) 
at com.hp.hpl.jena.tdb.store.GraphTriplesTDB.createPrefixMapping(GraphTriplesTDB.java:99) 
at com.hp.hpl.jena.sparql.graph.GraphBase2.getPrefixMapping(GraphBase2.java:194) at 
com.hp.hpl.jena.rdf.model.impl.ModelCom.getPrefixMapping(ModelCom.java:908) at 
com.hp.hpl.jena.rdf.model.impl.ModelCom.withDefaultMappings(ModelCom.java:952) at 
com.hp.hpl.jena.rdf.model.impl.ModelCom.<init>(ModelCom.java:66) at 
com.hp.hpl.jena.rdf.model.impl.ModelCom.<init>(ModelCom.java:62) at 
com.hp.hpl.jena.rdf.model.ModelFactory.createModelForGraph(ModelFactory.java:166)
  at com.hp.hpl.jena.sparql.core.DatasetImpl.graph2model(DatasetImpl.java:268) 
at com.hp.hpl.jena.sparql.core.DatasetImpl.getDefaultModel(DatasetImpl.java:104)


So, is loading the OWL into memory and loading into TDB done differently 
somehow...????


Also note, my prefixes.dat is empty.



Here is the shortened method I've been using to test:

    public void load()
   {
     Dataset dataset = TDBFactory.assembleDataset("air-tdb-assembler.ttl");
     Model model = dataset.getDefaultModel();
     OntModel ontModel = 
ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_RDFS_INF, model);
     TDBLoader.loadModel(model, "file:src/test/resources/time.owl");

     printAllQuery();
   }

  public void printAllQuery()
   {
     try
     {
       Query ALL_QUERY = QueryFactory.create("SELECT * {?s ?p ?o}");
       QueryExecution qExec = QueryExecutionFactory.create(ALL_QUERY, dataset);
       ResultSet rs = qExec.execSelect();
       try
       {
         ResultSetFormatter.out(rs);
       }
       finally
       {
         qExec.close();
       }
     }
     finally
     {
       // dataset.end(); // declares the end of the read transaction
     }
   }


air-tdb-assembler.ttl:
@prefix tdb:<http://jena.hpl.hp.com/2008/tdb#>  .
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>  .
@prefix rdfs:<http://www.w3.org/2000/01/rdf-schema#>  .
@prefix ja:<http://jena.hpl.hp.com/2005/11/Assembler#>  .

[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model      .

<#dataset>  rdf:type         tdb:DatasetTDB ;
     tdb:location "target/jenaDatabase/jenaDS" ;
     .



Tkx,
Jim


Reply via email to