summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity/agent
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/entity/agent')
-rw-r--r--src/main/java/com/c2kernel/entity/agent/JobList.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/com/c2kernel/entity/agent/JobList.java b/src/main/java/com/c2kernel/entity/agent/JobList.java
index f8a88ee..3772c22 100644
--- a/src/main/java/com/c2kernel/entity/agent/JobList.java
+++ b/src/main/java/com/c2kernel/entity/agent/JobList.java
@@ -1,5 +1,6 @@
package com.c2kernel.entity.agent;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
@@ -72,14 +73,21 @@ public class JobList extends RemoteMap<Job>
public void removeJobsForStep( int sysKey, String stepPath )
{
- Iterator<Job> currentMembers = values().iterator();
- while( currentMembers.hasNext() )
+ ArrayList<String> staleJobs = new ArrayList<String>();
+ Iterator<String> jobIter = keySet().iterator();
+ while( jobIter.hasNext() )
{
- Job j = currentMembers.next();
+ String jid = jobIter.next();
+ Job j = get(jid);
if( j.getItemSysKey() == sysKey && j.getStepPath().equals(stepPath))
- remove( String.valueOf(j.getID()) );
+ staleJobs.add(jid);
}
+
+ Logger.msg(3, "JobList.removeJobsForStep() - removing "+staleJobs.size());
+ for (String jid : staleJobs) {
+ remove(jid);
+ }
Logger.msg(5, "JobList::removeJobsForStep() - " + sysKey + " DONE." );
}
/**