Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistry.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistry.java	(revision 490)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistry.java	(revision 1151)
@@ -14,6 +14,15 @@
 
 	public JobInterface<?> getJobInfo(String jobId);
+	
+	public List<JobInterface<?>> getJobs();
+	
+	public List<JobInterface<?>> getJobs(int status);
+	
 
 	public TaskInterface<?> getTaskInfo(String jobId, String taskId);
+	
+	public ExecutablesList getTasks(); 
+	
+	public ExecTask getTask(String jobId, String taskId);
 
 	
@@ -28,9 +37,4 @@
 	public List<ExecTask> getFinishedTasks();
 
-
-	public ExecutablesList getExecutableTasks(); 
-	
-	public ExecTask getExecutable(String jobId, String taskId);
-
 	
 	public List<? extends TaskInterface<?>> getAvailableTasks(List<JobInterface<?>> jobsList);
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java	(revision 1083)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java	(revision 1151)
@@ -38,5 +38,5 @@
 
 	public boolean addExecTask(ExecTask newTask) {
-		if(getExecutable(newTask.getJobId(), newTask.getId()) == null) {
+		if(getTask(newTask.getJobId(), newTask.getId()) == null) {
 			synchronized (executables)  {
 				executables.add(newTask);
@@ -47,5 +47,5 @@
 	}
 
-	public ExecutablesList getExecutableTasks() {
+	public ExecutablesList getTasks() {
 		return executables;
 	}
@@ -81,5 +81,5 @@
 	}
 	
-	public ExecTask getExecutable(String jobId, String taskId){
+	public ExecTask getTask(String jobId, String taskId){
 		synchronized (executables)  {
 			for (ExecTask task : executables) {
@@ -93,11 +93,11 @@
 
 	@SuppressWarnings("unchecked")
-	public List<Task> getAvailableTasks(List<JobInterface<?>> wuList) {
+	public List<Task> getAvailableTasks(List<JobInterface<?>> jobList) {
 		List<Task> availableTasks = new ArrayList<Task>();
 		List<Task> waitingTasks = new ArrayList<Task>();
 		
-		for(int i = 0; i < wuList.size(); i++){
-			JobInterface<?> wu  = (JobInterface<?>)wuList.get(i);
-			waitingTasks.addAll((List<Task>)wu.getTask());
+		for(int i = 0; i < jobList.size(); i++){
+			JobInterface<?> job = (JobInterface<?>)jobList.get(i);
+			waitingTasks.addAll((List<Task>)job.getTask());
 		}
 
@@ -178,5 +178,10 @@
 						ParentType par = w.getParent(j);
 						if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){
-							if(!checkTaskCompletion(task.getJobId(), par.getContent())){
+							if(par.getContent().contains("_")){
+								if(!checkTaskCompletion(par.getContent().split("_")[0], par.getContent().split("_")[1])){
+									continue;
+								}
+							}
+							else if(!checkTaskCompletion(task.getJobId(), par.getContent())){
 								continue;
 							}
Index: DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/AbstractJobRegistry.java
===================================================================
--- DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/AbstractJobRegistry.java	(revision 481)
+++ DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/AbstractJobRegistry.java	(revision 1151)
@@ -2,8 +2,7 @@
 
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 import schedframe.scheduling.tasks.Job;
@@ -24,5 +23,5 @@
 	
 	public boolean addJob(JobInterface<?> job) {
-		jobs.put(job.getId(),  job);
+		jobs.put(job.getId(), job);
 		return true;
 	}
@@ -58,4 +57,25 @@
 		return (Job)jobs.get(jobId);
 	}
+	
+	public List<JobInterface<?>> getJobs(){
+		List<JobInterface<?>> jobList = new ArrayList<JobInterface<?>>();
+		for(String jobId:jobs.keySet()) {
+			jobList.add(jobs.get(jobId));
+		}
+		return jobList;
+	}
+
+	public List<JobInterface<?>> getJobs(int status) {
+		List<JobInterface<?>> jobList = new ArrayList<JobInterface<?>>();
+		synchronized (jobs) {
+			for(String jobId:jobs.keySet()){
+				JobInterface<?> job = jobs.get(jobId);
+				if (job.getStatus() == status) {
+					jobList.add(job);
+				}
+			}
+		}
+		return jobList;
+	}
 
 }
