Преглед на файлове

Fix bug of not posting the correct debit for voice calls.

Fixed by decrementing serviceActivityCount only by postJobStatus method.
Also jobs being scheduled are taken into considering when deciding
to advance broadcast state COMPLETED to ALLDONE.
tags/1.0.23
ymlam преди 2 години
родител
ревизия
e4da5bf0c7
променени са 1 файла, в които са добавени 5 реда и са изтрити 10 реда
  1. +5
    -10
      src/main/java/altk/comm/engine/Broadcast.java

+ 5
- 10
src/main/java/altk/comm/engine/Broadcast.java Целия файл

@@ -386,11 +386,6 @@ public abstract class Broadcast
myLogger.error("Caught unexpected Throwable", t);
terminate(BroadcastState.ABORTED, t + ": " + t.getMessage());
}
finally
{
updateServiceActivityCount(-batch.size());
if (serviceActivityCount == 0) postback.wakeOneUp();
}
if (sleepBetweenJobs > 0)
{
try
@@ -1287,8 +1282,8 @@ public abstract class Broadcast
report.initBase(job, broadcastId, launchRecordId, activityRecordIdParamName, jobReportRootNodeName);
report.init(job);
postback.queueReport(report.toString());
updateServiceActivityCount(-1);
}
}
/**
@@ -1352,6 +1347,8 @@ public abstract class Broadcast

public ScheduledFuture<?> rescheduleJob(final Job job, long rescheduleTimeMS)
{
if (rescheduleTimeMS < 0) return null;
// No more rescheduling on cancel, abort, expired, or alldone
if (state == BroadcastState.CANCELING
|| state == BroadcastState.CANCELED
@@ -1424,10 +1421,8 @@ public abstract class Broadcast
public PostbackThreadActionOnEmpty getPostbackThreadActionOnEmpty() {
myLogger.debug("getPostbackThreadActionOnEmpty(): broadcast state " + state);
if (state.isFinal) return PostbackThreadActionOnEmpty.STOP;
int activeJobCount = getActiveJobCount();
myLogger.debug("getPostbackThreadActionOnEmpty(): activeJobCount = " + activeJobCount);
if (activeJobCount > 0) {
if (serviceActivityCount > 0) {
return PostbackThreadActionOnEmpty.WAIT;
}
@@ -1443,7 +1438,7 @@ public abstract class Broadcast
return setState(BroadcastState.ABORTED, reason, stateErrorText).stateChangeStatus == StateChangeStatus.SUCCESS?
PostbackThreadActionOnEmpty.CONTINUE : PostbackThreadActionOnEmpty.STOP;
}
else if (state == BroadcastState.COMPLETED) {
else if (state == BroadcastState.COMPLETED && scheduledJobs == 0) {
return setState(BroadcastState.ALLDONE).stateChangeStatus == StateChangeStatus.SUCCESS?
PostbackThreadActionOnEmpty.CONTINUE : PostbackThreadActionOnEmpty.STOP;
}


Зареждане…
Отказ
Запис