int changes = 0;
logger.trace(methodName, null, messages.fetch("enter"));
long t0 = System.currentTimeMillis();
Iterator<DuccId> workMapIterator = workMap.keySet().iterator();
while(workMapIterator.hasNext()) {
DuccId duccId = workMapIterator.next();
IDuccWork duccWork = workMap.findDuccWork(duccId);
switch(duccWork.getDuccType()) {
case Job:
case Service:
DuccWorkJob duccWorkJob = (DuccWorkJob)duccWork;
if(duccWorkJob != null) {
if(duccWorkJob.isCompleting() && allProcessesTerminated(duccWorkJob)) {
stateJobAccounting.stateChange(duccWorkJob, JobState.Completed);
}
if(duccWorkJob.isCompleted() && allProcessesTerminated(duccWorkJob) && isSaved(duccWorkJob) && isAgedOut(duccWorkJob)) {
workMap.removeDuccWork(duccId);
driverStatusReportMap.remove(duccId);
logger.info(methodName, duccId, messages.fetch("removed job"));
changes ++;
IDuccProcessMap processMap = duccWorkJob.getProcessMap();
Iterator<DuccId> processMapIterator = processMap.keySet().iterator();
while(processMapIterator.hasNext()) {
DuccId processDuccId = processMapIterator.next();
orchestratorCommonArea.getProcessAccounting().removeProcess(processDuccId);
logger.info(methodName, duccId, messages.fetch("removed process")+" "+processDuccId.toString());
changes ++;
}
logger.info(methodName, duccId, messages.fetch("processes inactive"));
}
else {