VIVO-542 fixes bug with restriction deletion and various small improvements

This commit is contained in:
brianjlowe 2013-11-18 14:31:51 -05:00
parent d0458047cb
commit 5038451685
7 changed files with 34 additions and 6 deletions

View file

@ -57,7 +57,7 @@ public class Classes2ClassesOperationController extends BaseEditController {
return;
}
VClassDao vcDao = request.getUnfilteredAssertionsWebappDaoFactory().getVClassDao();
VClassDao vcDao = request.getLanguageNeutralWebappDaoFactory().getVClassDao();
String modeStr = request.getParameter("opMode");
modeStr = (modeStr == null) ? "" : modeStr;

View file

@ -1048,11 +1048,20 @@ public class VClassDaoJena extends JenaBaseDao implements VClassDao {
try {
OntResource subclass = getOntClass(ontModel,c2c.getSubclassURI());
OntResource superclass = getOntClass(ontModel,c2c.getSuperclassURI());
if(subclass == null || superclass == null) {
log.warn("unable to delete " + c2c.getSubclassURI() +
" rdfs:subClassOf " + c2c.getSuperclassURI());
if (subclass == null) {
log.warn(c2c.getSubclassURI() + " not found in the model.");
}
if (superclass == null) {
log.warn(c2c.getSuperclassURI() + " not found in the model.");
}
return;
}
Model removal = ModelFactory.createDefaultModel();
Model additions = ModelFactory.createDefaultModel(); // to repair any rdf:Lists
if ((subclass != null) && (superclass != null)) {
removal.add(ontModel.listStatements(subclass, RDFS.subClassOf, superclass));
}
removal.add(ontModel.listStatements(subclass, RDFS.subClassOf, superclass));
if (subclass.isAnon()) {
Model[] changeSet = getSmartRemoval(subclass, getOntModel());
removal.add(changeSet[0]);

View file

@ -207,6 +207,14 @@ public class KnowledgeBaseUpdater {
StmtIterator sit = anonModel.listStatements();
while (sit.hasNext()) {
Statement stmt = sit.nextStatement();
// Skip statements with blank nodes (unsupported) to avoid
// excessive deletion. In the future, the whole updater
// could be modified to change whole graphs at once through
// the RDFService, but right now this whole thing is statement
// based.
if (stmt.getSubject().isAnon() || stmt.getObject().isAnon()) {
continue;
}
Iterator<String> graphIt = dataset.listNames();
while(graphIt.hasNext()) {
String graph = graphIt.next();
@ -223,8 +231,9 @@ public class KnowledgeBaseUpdater {
//log.info("removed " + anonModel.size() + " statements from SPARQL CONSTRUCTs");
} else {
Model writeModel = dataset.getNamedModel(JenaDataSourceSetupBase.JENA_DB_MODEL);
Model dedupeModel = dataset.getDefaultModel();
Model additions = jiu.renameBNodes(
anonModel, settings.getDefaultNamespace() + "n", writeModel);
anonModel, settings.getDefaultNamespace() + "n", dedupeModel);
Model actualAdditions = ModelFactory.createDefaultModel();
StmtIterator stmtIt = additions.listStatements();
while (stmtIt.hasNext()) {

View file

@ -217,6 +217,9 @@ public abstract class RDFServiceJena extends RDFServiceImpl implements RDFServic
private List<Statement> sort(List<Statement> stmts) {
List<Statement> output = new ArrayList<Statement>();
int originalSize = stmts.size();
if(originalSize == 1) {
return stmts;
}
List <Statement> remaining = stmts;
ConcurrentLinkedQueue<Resource> subjQueue = new ConcurrentLinkedQueue<Resource>();
for(Statement stmt : remaining) {

View file

@ -744,6 +744,8 @@ public class RDFServiceSparql extends RDFServiceImpl implements RDFService {
private List<Statement> sort(List<Statement> stmts) {
List<Statement> output = new ArrayList<Statement>();
int originalSize = stmts.size();
if (originalSize == 1)
return stmts;
List <Statement> remaining = stmts;
ConcurrentLinkedQueue<com.hp.hpl.jena.rdf.model.Resource> subjQueue =
new ConcurrentLinkedQueue<com.hp.hpl.jena.rdf.model.Resource>();

View file

@ -410,6 +410,11 @@ public class ABoxRecomputer {
while (iter.hasNext()) {
Statement stmt = iter.next();
// skip statements with blank nodes to avoid excessive deletion
if (stmt.getSubject().isAnon() || stmt.getObject().isAnon()) {
continue;
}
inferenceModel.enterCriticalSection(Lock.WRITE);
try {
inferenceModel.remove(stmt);

View file

@ -221,7 +221,7 @@ public class JenaDataSourceSetupBase extends JenaBaseDaoCon {
int[] maxActiveAndIdle = getMaxActiveAndIdle(ctx);
cpds.setMaxPoolSize(maxActiveAndIdle[0]);
cpds.setMinPoolSize(maxActiveAndIdle[1]);
cpds.setMaxIdleTime(3600); // ms
cpds.setMaxIdleTime(43200); // s
cpds.setMaxIdleTimeExcessConnections(300);
cpds.setAcquireIncrement(5);
cpds.setNumHelperThreads(6);