diff --git a/src/main/java/altk/comm/engine/Broadcast.java b/src/main/java/altk/comm/engine/Broadcast.java index 703fd0e..6b1c807 100644 --- a/src/main/java/altk/comm/engine/Broadcast.java +++ b/src/main/java/altk/comm/engine/Broadcast.java @@ -1266,7 +1266,7 @@ public abstract class Broadcast report.initBase(job, broadcastId, launchRecordId, activityRecordIdParamName, jobReportRootNodeName); report.init(job); postback.queueReport(report.toString()); - updateServiceActivityCount(-1); + if (job.statusIsFinal()) updateServiceActivityCount(-1); } } diff --git a/src/main/java/altk/comm/engine/Job.java b/src/main/java/altk/comm/engine/Job.java index 441a3bb..79d4aef 100644 --- a/src/main/java/altk/comm/engine/Job.java +++ b/src/main/java/altk/comm/engine/Job.java @@ -1,5 +1,7 @@ package altk.comm.engine; +import altk.comm.engine.Job.CommJobStatus; + /** * Derived classes may add more class attributes, e.g. list of phone numbers, call status. * @author Yuk-Ming @@ -81,5 +83,18 @@ public class Job { return false; } + + /** + * Derived class must augment this method to handle its own JobStatus + */ + protected boolean statusIsFinal() { + if (jobStatus instanceof CommJobStatus) + { + return true; + } + throw new IllegalArgumentException("Job status is not a CommJobStatus"); + } + + }