From: Ralph Straubs Date: Thu, 14 Sep 2017 08:51:45 +0000 (-0500) Subject: Eliminate hanging when updating Drools containers X-Git-Tag: v1.1.0~39^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=7e82d6a2b1409c4f59993b2946645647e2fb2b17;p=policy%2Fdrools-pdp.git Eliminate hanging when updating Drools containers 'PolicyContainer.updateToVersion(...)' now hangs unless the Drools session threads are stopped prior to the update. This wasn't an issue in the past, and it isn't clear what causes it to happen now. It also happened in the Junit tests I am currently working on. In any case, the 'updateToVersion' method has now been changed to stop the threads prior to an update attempt, do the update, and then restart the threads. Change-Id: I577a67c6e99a68bcbe3c2f476f93c0a72b93451a Issue-ID: POLICY-234 Signed-off-by: Ralph Straubs --- diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java b/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java index cf94bfcb..9fc2c837 100644 --- a/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java +++ b/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java @@ -457,10 +457,19 @@ public class PolicyContainer implements Startable logger.info("updateToVersion:releaseId " + releaseId.toString()); } - // notify all 'PolicySession' instances + // stop all session threads + for (PolicySession session : sessions.values()) + { + session.stopThread(); + } + + // update the version Results results = kieContainer.updateToVersion(releaseId); + + // restart all session threads, and notify the sessions for (PolicySession session : sessions.values()) { + session.startThread(); session.updated(); }