diff options
Diffstat (limited to 'src/main/java/com/c2kernel')
| -rw-r--r-- | src/main/java/com/c2kernel/entity/agent/JobList.java | 16 | ||||
| -rw-r--r-- | src/main/java/com/c2kernel/persistency/RemoteMap.java | 4 |
2 files changed, 15 insertions, 5 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." );
}
/**
diff --git a/src/main/java/com/c2kernel/persistency/RemoteMap.java b/src/main/java/com/c2kernel/persistency/RemoteMap.java index 2147047..b36648f 100644 --- a/src/main/java/com/c2kernel/persistency/RemoteMap.java +++ b/src/main/java/com/c2kernel/persistency/RemoteMap.java @@ -345,6 +345,7 @@ public class RemoteMap<V extends C2KLocalObject> extends TreeMap<String, V> impl private class RemoteIterator<C extends C2KLocalObject> implements Iterator<C> {
RemoteMap<C> mParent;
Iterator<String> iter;
+ String currentKey;
public RemoteIterator(RemoteMap<C> parent) {
mParent = parent;
@@ -358,7 +359,8 @@ public class RemoteMap<V extends C2KLocalObject> extends TreeMap<String, V> impl @Override
public C next() {
- return mParent.get(iter.next());
+ currentKey = iter.next();
+ return mParent.get(currentKey);
}
@Override
|
