summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/c2kernel/entity/agent/JobList.java16
-rw-r--r--src/main/java/com/c2kernel/persistency/RemoteMap.java4
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