diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java index 08a7dddae..fd16e2a75 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SimpleReasonerRecomputeController.java @@ -1,6 +1,8 @@ /* $This file is distributed under the terms of the license in /doc/license.txt$ */ package edu.cornell.mannlib.vitro.webapp.controller.freemarker; +import static edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread.WorkLevel.WORKING; + import java.util.HashMap; import java.util.Map; @@ -14,6 +16,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.Exc import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues; import edu.cornell.mannlib.vitro.webapp.reasoner.SimpleReasoner; +import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread; public class SimpleReasonerRecomputeController extends FreemarkerHttpServlet { @@ -49,7 +52,10 @@ public class SimpleReasonerRecomputeController extends FreemarkerHttpServlet { } else { String submit = (String)vreq.getParameter("submit"); if (submit != null) { - new Thread(new Recomputer((simpleReasoner))).start(); + VitroBackgroundThread thread = new VitroBackgroundThread(new Recomputer((simpleReasoner)), + "SimpleReasonerRecomputController.Recomputer"); + thread.setWorkLevel(WORKING); + thread.start(); messageStr = "Recompute of inferences started. See vivo log for further details."; } else { body.put("formAction", UrlBuilder.getUrl("/RecomputeInferences")); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java index cd61b2d4f..1ce5169e5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/reasoner/SimpleReasoner.java @@ -2,6 +2,8 @@ package edu.cornell.mannlib.vitro.webapp.reasoner; +import static edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread.WorkLevel.WORKING; + import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; @@ -42,6 +44,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.event.BulkUpdateEvent; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService; import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException; import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.jena.model.RDFServiceModel; +import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread; /** * Allows for real-time incremental materialization or retraction of RDFS- @@ -1536,7 +1539,10 @@ public class SimpleReasoner extends StatementListener { log.info("received a bulk update end event"); if (!deltaComputerProcessing) { deltaComputerProcessing = true; - new Thread(new DeltaComputer(),"DeltaComputer").start(); + VitroBackgroundThread thread = new VitroBackgroundThread(new DeltaComputer(), + "SimpleReasoner.DeltaComputer"); + thread.setWorkLevel(WORKING); + thread.start(); } else { eventCount--; log.info("received a bulk update end event while currently processing in aynchronous mode. Event count = " + eventCount); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/threads/VitroBackgroundThread.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/threads/VitroBackgroundThread.java index 8f5fd3908..47780558f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/threads/VitroBackgroundThread.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/utils/threads/VitroBackgroundThread.java @@ -66,7 +66,7 @@ public class VitroBackgroundThread extends Thread { allThreads.add(new WeakReference(this)); } - protected void setWorkLevel(WorkLevel level, String... flags) { + public void setWorkLevel(WorkLevel level, String... flags) { log.debug("Set work level on '" + this.getName() + "' to " + level + ", flags=" + flags); stamp = new WorkLevelStamp(level, flags);