merging changes for NIHVIVO-959 fillExistingObjectPropertyStatements error
This commit is contained in:
parent
32fa4851a6
commit
44976b4b72
2 changed files with 66 additions and 61 deletions
|
@ -638,13 +638,13 @@ public class IndividualJena extends IndividualImpl implements Individual {
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
webappDaoFactory.getObjectPropertyStatementDao().fillExistingObjectPropertyStatements(this);
|
webappDaoFactory.getObjectPropertyStatementDao().fillExistingObjectPropertyStatements(this);
|
||||||
Iterator stmtIt = this.getObjectPropertyStatements().iterator();
|
//Iterator stmtIt = this.getObjectPropertyStatements().iterator();
|
||||||
while (stmtIt.hasNext()) {
|
//while (stmtIt.hasNext()) {
|
||||||
ObjectPropertyStatement stmt = (ObjectPropertyStatement) stmtIt.next();
|
// ObjectPropertyStatement stmt = (ObjectPropertyStatement) stmtIt.next();
|
||||||
stmt.setObject(webappDaoFactory.getIndividualDao().getIndividualByURI(stmt.getObject().getURI()));
|
// stmt.setObject(webappDaoFactory.getIndividualDao().getIndividualByURI(stmt.getObject().getURI()));
|
||||||
}
|
//}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(this.getClass().getName()+" could not fill existing ObjectPropertyStatements for "+this.getURI());
|
log.error(this.getClass().getName()+" could not fill existing ObjectPropertyStatements for "+this.getURI(), e);
|
||||||
}
|
}
|
||||||
return this.objectPropertyStatements;
|
return this.objectPropertyStatements;
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,61 +61,66 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
|
|
||||||
ObjectPropertyDaoJena opDaoJena = new ObjectPropertyDaoJena(getWebappDaoFactory());
|
ObjectPropertyDaoJena opDaoJena = new ObjectPropertyDaoJena(getWebappDaoFactory());
|
||||||
|
|
||||||
Resource ind = getOntModel().getResource(entity.getURI());
|
getOntModel().enterCriticalSection(Lock.READ);
|
||||||
List<ObjectPropertyStatement> objPropertyStmtList = new ArrayList<ObjectPropertyStatement>();
|
try {
|
||||||
ClosableIterator<Statement> propIt = ind.listProperties();
|
Resource ind = getOntModel().getResource(entity.getURI());
|
||||||
try {
|
List<ObjectPropertyStatement> objPropertyStmtList = new ArrayList<ObjectPropertyStatement>();
|
||||||
while (propIt.hasNext()) {
|
ClosableIterator<Statement> propIt = ind.listProperties();
|
||||||
Statement st = (Statement) propIt.next();
|
try {
|
||||||
|
while (propIt.hasNext()) {
|
||||||
|
Statement st = (Statement) propIt.next();
|
||||||
|
|
||||||
if (st.getObject().isResource() && !(NONUSER_NAMESPACES.contains(st.getPredicate().getNameSpace()))) {
|
if (st.getObject().isResource() && !(NONUSER_NAMESPACES.contains(st.getPredicate().getNameSpace()))) {
|
||||||
try {
|
try {
|
||||||
ObjectPropertyStatement objPropertyStmt = new ObjectPropertyStatementImpl();
|
ObjectPropertyStatement objPropertyStmt = new ObjectPropertyStatementImpl();
|
||||||
objPropertyStmt.setSubjectURI(entity.getURI());
|
objPropertyStmt.setSubjectURI(entity.getURI());
|
||||||
objPropertyStmt.setSubject(entity);
|
objPropertyStmt.setSubject(entity);
|
||||||
try {
|
try {
|
||||||
objPropertyStmt.setObjectURI(((Resource)st.getObject()).getURI());
|
objPropertyStmt.setObjectURI(((Resource)st.getObject()).getURI());
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
t.printStackTrace();
|
t.printStackTrace();
|
||||||
}
|
}
|
||||||
objPropertyStmt.setPropertyURI(st.getPredicate().getURI());
|
objPropertyStmt.setPropertyURI(st.getPredicate().getURI());
|
||||||
try {
|
try {
|
||||||
Property prop = st.getPredicate();
|
Property prop = st.getPredicate();
|
||||||
if( uriToObjectProperty.containsKey(prop.getURI())){
|
if( uriToObjectProperty.containsKey(prop.getURI())){
|
||||||
objPropertyStmt.setProperty(uriToObjectProperty.get(prop.getURI()));
|
objPropertyStmt.setProperty(uriToObjectProperty.get(prop.getURI()));
|
||||||
}else{
|
}else{
|
||||||
ObjectProperty p = opDaoJena.propertyFromOntProperty(getOntModel().getObjectProperty(prop.getURI()));
|
ObjectProperty p = opDaoJena.propertyFromOntProperty(getOntModel().getObjectProperty(prop.getURI()));
|
||||||
if( p != null ){
|
if( p != null ){
|
||||||
uriToObjectProperty.put(prop.getURI(), p);
|
uriToObjectProperty.put(prop.getURI(), p);
|
||||||
objPropertyStmt.setProperty(uriToObjectProperty.get(prop.getURI()));
|
objPropertyStmt.setProperty(uriToObjectProperty.get(prop.getURI()));
|
||||||
}else{
|
}else{
|
||||||
//if ObjectProperty not found in ontology, skip it
|
//if ObjectProperty not found in ontology, skip it
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable g) {
|
} catch (Throwable g) {
|
||||||
//do not add statement to list
|
//do not add statement to list
|
||||||
log.debug("exception while trying to get object property for statement list, statement skipped.", g);
|
log.debug("exception while trying to get object property for statement list, statement skipped.", g);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (objPropertyStmt.getObjectURI() != null) {
|
if (objPropertyStmt.getObjectURI() != null) {
|
||||||
Individual objInd = getWebappDaoFactory().getIndividualDao().getIndividualByURI(objPropertyStmt.getObjectURI());
|
Individual objInd = getWebappDaoFactory().getIndividualDao().getIndividualByURI(objPropertyStmt.getObjectURI());
|
||||||
objPropertyStmt.setObject(objInd);
|
objPropertyStmt.setObject(objInd);
|
||||||
}
|
}
|
||||||
|
|
||||||
//add object property statement to list for Individual
|
//add object property statement to list for Individual
|
||||||
if ((objPropertyStmt.getSubjectURI() != null) && (objPropertyStmt.getPropertyURI() != null) && (objPropertyStmt.getObject() != null)){
|
if ((objPropertyStmt.getSubjectURI() != null) && (objPropertyStmt.getPropertyURI() != null) && (objPropertyStmt.getObject() != null)){
|
||||||
objPropertyStmtList.add(objPropertyStmt);
|
objPropertyStmtList.add(objPropertyStmt);
|
||||||
}
|
}
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
t.printStackTrace();
|
t.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
propIt.close();
|
propIt.close();
|
||||||
}
|
}
|
||||||
entity.setObjectPropertyStatements(objPropertyStmtList);
|
entity.setObjectPropertyStatements(objPropertyStmtList);
|
||||||
|
} finally {
|
||||||
|
getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue