Eliminate hanging when updating Drools containers 91/12391/1
authorRalph Straubs <rs8887@att.com>
Thu, 14 Sep 2017 08:51:45 +0000 (03:51 -0500)
committerRalph Straubs <rs8887@att.com>
Thu, 14 Sep 2017 08:51:45 +0000 (03:51 -0500)
'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 <rs8887@att.com>
policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java

index cf94bfc..9fc2c83 100644 (file)
@@ -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();
          }