NIHVIVO-2252 fixed bug retrieving ontologies with URIs ending in hashes
This commit is contained in:
parent
0fdf28d3f5
commit
a8dd57c6be
1 changed files with 22 additions and 2 deletions
|
@ -38,10 +38,30 @@ public class OntologyDaoJena extends JenaBaseDao implements OntologyDao {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private com.hp.hpl.jena.ontology.Ontology getOntology(String ontologyURI, OntModel ontModel) {
|
private com.hp.hpl.jena.ontology.Ontology getOntology(String ontologyURI,
|
||||||
|
OntModel ontModel) {
|
||||||
|
|
||||||
|
// Something non-ideal happens here. There are places in the code that
|
||||||
|
// call getOntology() but don't pass the URI of the ontology resource
|
||||||
|
// itself. Instead, they pass the namespace that would appear
|
||||||
|
// in a PREFIX declaration. For example, we might have an ontology with
|
||||||
|
// the namespace http://example.org/ontology# .
|
||||||
|
// A class in this namespace might have the URI
|
||||||
|
// http://example.org/ontology#SomeClass . The ontology resource
|
||||||
|
// itself, however, may have the URI http://example.org/ontology
|
||||||
|
// (no final hash mark). To support assumptions in the code,
|
||||||
|
// this method calls adjustOntologyURI to remove a trailing hash
|
||||||
|
// mark if an ontology resource is not found at the specified URI.
|
||||||
try {
|
try {
|
||||||
ontModel.enterCriticalSection(Lock.READ);
|
ontModel.enterCriticalSection(Lock.READ);
|
||||||
return ontModel.getOntology(adjustOntologyURI(ontologyURI));
|
com.hp.hpl.jena.ontology.Ontology o = ontModel.getOntology(
|
||||||
|
ontologyURI);
|
||||||
|
if (o != null) {
|
||||||
|
return o;
|
||||||
|
} else {
|
||||||
|
return ontModel.getOntology(
|
||||||
|
adjustOntologyURI(ontologyURI));
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
ontModel.leaveCriticalSection();
|
ontModel.leaveCriticalSection();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue